Der einfachste und am wenigsten performante Weg, dies zu tun, ist:
Array.from(m).map(([key,value]) => )
Besser noch
Array.from(m, ([key, value]) => ))
Array.from
nimmt jedes iterierbare oder Array-ähnliche Objekt und konvertiert es in ein Array! Wie Daniel in den Kommentaren hervorhebt, können wir der Konvertierung eine Zuordnungsfunktion hinzufügen, um eine Iteration und anschließend ein Zwischenarray zu entfernen.
Mit Array.from
wird Ihre Leistung von O(1)
nach O(n)
verschoben , wie @hraban in den Kommentaren hervorhebt. Da m
a Map
ist und sie nicht unendlich sein können, müssen wir uns keine Sorgen um eine unendliche Folge machen. In den meisten Fällen reicht dies aus.
Es gibt noch einige andere Möglichkeiten, eine Karte zu durchlaufen.
Verwenden von forEach
m.forEach((value,key) => )
Verwenden von 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
Funktionen von Drittanbietern verwenden, die auch Map unterstützen.