วิธีที่ง่ายที่สุดและมีประสิทธิภาพน้อยที่สุดคือ:
Array.from(m).map(([key,value]) => )
ยังดีกว่า
Array.from(m, ([key, value]) => ))
Array.fromนำสิ่งที่ทำซ้ำได้หรือคล้ายอาร์เรย์และแปลงเป็นอาร์เรย์! ดังที่ Daniel ชี้ให้เห็นในความคิดเห็นเราสามารถเพิ่มฟังก์ชันการทำแผนที่ลงในการแปลงเพื่อลบการวนซ้ำและต่อมาเป็นอาร์เรย์กลาง
การใช้Array.fromจะย้ายประสิทธิภาพของคุณจากO(1)ไปO(n)เป็นที่ @hraban ชี้ให้เห็นในความคิดเห็น เนื่องจากmเป็น a Mapและไม่สามารถเป็นอนันต์ได้เราไม่ต้องกังวลเกี่ยวกับลำดับที่ไม่สิ้นสุด สำหรับกรณีส่วนใหญ่สิ่งนี้จะเพียงพอ
มีอีกสองสามวิธีในการวนรอบแผนที่
การใช้ forEach
m.forEach((value,key) => )
การใช้ for..of
var myMap = new Map();
myMap.set(0, 'zero');
myMap.set(1, 'one');
for (var [key, value] of myMap) {
console.log(key + ' = ' + value);
}
lodashmapฟังก์ชันที่รองรับแผนที่ได้เช่นกัน