วิธีที่ง่ายที่สุดและมีประสิทธิภาพน้อยที่สุดคือ:
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);
}
lodash
map
ฟังก์ชันที่รองรับแผนที่ได้เช่นกัน