Cách đơn giản nhất và ít hiệu quả nhất để làm điều này là:
Array.from(m).map(([key,value]) => )
Tốt hơn
Array.from(m, ([key, value]) => ))
Array.from
lấy bất kỳ thứ nào có thể lặp lại hoặc giống mảng và chuyển đổi nó thành một mảng! Như Daniel đã chỉ ra trong các nhận xét, chúng ta có thể thêm một hàm ánh xạ vào chuyển đổi để loại bỏ một lần lặp và sau đó là một mảng trung gian.
Sử dụng Array.from
sẽ di chuyển hiệu suất của bạn từ O(1)
đến O(n)
như điểm @hraban ra trong các ý kiến. Kể từ khi m
là mộtMap
, và chúng không thể là vô hạn nên chúng ta không phải lo lắng về một chuỗi vô hạn. Đối với hầu hết các trường hợp, điều này là đủ.
Có một số cách khác để xem qua bản đồ.
Sử dụng forEach
m.forEach((value,key) => )
Sử dụng 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
chức năng hỗ trợ cả Bản đồ.