Da Array.from
nicht zum aktuellen Zeitpunkt auf Chrome arbeiten, brauchte ich eine andere Möglichkeit, einen Iterator in ein Array zu konvertieren.
(obwohl natürlich kann man shim it with a polyfill)
function iterator2Array(iterator) {
var result = [];
for (var item in iterator) {
result.push(item)
}
return result;
}
Aus ähnlichen Gründen fügt ich eine „toArray“ den Prototyp einer Karte, so dass ich im Grunde einen Iterator in ein Array konvertieren, so dass Sie seine Verwendung funktionsorientierte Methoden; natürlich jedes Element des Arrays a [key, value] Tupel (genau wie in seiner Map.entries()
)
if (!Map.prototype.toArray) {
/**
* Transforms a map into an Array of 'tuples' [[key, value], ...]
*/
Map.prototype.toArray = function() {
var result = [];
for (var item of this) {
result.push(item);
}
return result;
}
}
var m = new Map([[0, 0], ['a', 'A']]);
m.toArray()
Dann werden Sie es als ein Array verwenden können - denken Sie daran, die [key, value] Ansatz though!
m.toArray().map(
function(item, index, array) {
var key = item[0],
value = item[1];
console.log(key + ": " + value);
return value;
});
Damit werden die Werte der Karte (ok nicht superuseful natürlich!) Zurückkehren
Wenn Sie eine standartisierte suchen Schleife bevorzugen:
var i = iterator.entries(),
result = [],
value;
while (value = i.next().value) {
result.push(value);
}
möglich Duplikat [Warum nicht Generatoren tun Support-Map()?] (https://StackOverflow.com/q/31232415/1048572) – Bergi