Ich verwende die unveränderliche Karte von Ссылка
Ich muss ein Array mit den Werten erhalten, die an einen Back-End-Dienst übergeben werden, und ich denke, dass mir etwas Grundlegendes fehlt, wie mache ich das?
Ich habe es versucht:
mymap.valueSeq().toArray()
Aber ich bekomme immer noch eine unveränderbare Datenstruktur zurück?
Zum Beispiel:
%Vor%Siehe Ссылка
Das Array, das wir aus der unveränderlichen Datenstruktur zurückbekommen, scheint immer noch mit den unveränderlichen Feldern für jedes enthaltene Objekt geschmückt zu sein. Ist das zu erwarten?
Das liegt daran, dass sr
ein Array
von Object
ist. Wenn Sie also .fromJS
zum Konvertieren verwenden, wird List
von Map
.
Das is.valueSeq().toArray();
( valueSeq
ist hier nicht erforderlich.) konvertiert es in Array
von Map
, also müssen Sie das Array durchlaufen und jedes Map
-Element in Array
.
Verwenden Sie einfach someMap.toIndexedSeq().toArray()
, um ein Array mit nur Werten zu erhalten.
Map.values()
gibt ein ES6 Iterable zurück (wie auch Map.keys()
und Map.entries()
), und daher können Sie mit Array.from()
oder die Spread Operator (wie beschrieben in diese Antwort ).
z.B.:
Array.from(map.values())
oder nur
[...map.values()]
Tags und Links javascript immutable.js