Immutable.js Ordnet Werte dem Array zu

9

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?

    
LenW 15.10.2015, 12:38
quelle

3 Antworten

4

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 .

%Vor% %Vor%
    
fuyushimoya 15.10.2015, 13:48
quelle
13

Verwenden Sie einfach someMap.toIndexedSeq().toArray() , um ein Array mit nur Werten zu erhalten.

    
Hüseyin Zengin 15.10.2015 12:47
quelle
2

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()]

    
ericsoco 28.02.2018 05:47
quelle

Tags und Links