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.fromnimmt 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.fromwird Ihre Leistung von O(1)nach O(n)verschoben , wie @hraban in den Kommentaren hervorhebt. Da ma Mapist 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);
}
lodashmapFunktionen von Drittanbietern verwenden, die auch Map unterstützen.