Wie konvertiert man ein Array von Objekten in ein Objekt in Lodash?

8

Ich habe das:

%Vor%

Und ich möchte es in folgendes verwandeln:

%Vor%

Also ein Array von Objekten in ein Objekt. Es wäre großartig, dies mit lodash zu erreichen.

    
Stefan 13.05.2015, 17:12
quelle

5 Antworten

15
%Vor%     
djaszczurowski 13.05.2015, 17:22
quelle
9

Ich denke, eine noch kürzere Lösung wäre:

%Vor%

Ich weiß, dass Sie nach lodash gefragt haben, aber es scheint nicht so, als würden Sie diesen Weg brauchen. Es sei denn, Sie möchten _.extend verwenden.

    
rcsole 18.04.2016 11:01
quelle
8

Hier ist eine kürzere Version:

%Vor%

Die Funktion transform () ist wie reduce () , außer dass Sie nicht erwarten, dass Sie etwas zurückgeben. Da extend () das erste Argument ändert, können wir es einfach direkt an transform() weiterleiten. Es ist in ary () verpackt, um sicherzustellen, dass nur 2 Argumente an es übergeben werden.

    
Adam Boduch 13.05.2015 21:04
quelle
1

Verwenden Sie fromPairs auf lodash 4. Ссылка

_.fromPairs([['fred', 30], ['barney', 40]]);

    
udnisap 25.04.2016 09:01
quelle
1

Um auf @ rcsole's große Antwort aufzubauen, funktioniert das gut:

%Vor%

Ergebnis:

%Vor%

Was ist hier los?

Lasst uns das in mehrere Teile aufteilen:

%Vor%

Schritt 1 verwendet map , um über jedes Element im Array (jedes Zustandsobjekt) zu iterieren. map führt für jedes Objekt state eine Funktion aus und gibt ein neues Objekt mit dem Status als Schlüssel und dem Namen als Wert zurück. Wir müssen state.state in Klammern einschließen, da es sich um einen dynamischen Wert in einem Objektliteral handelt.

Schritt 2 verwendet Object.assign , um alle neuen Statusobjekte im Array mappedStates in ein neues Objekt zusammenzuführen (der erste Parameter {} ). Wofür sind die drei Punkte ... ? Das ist der Spread-Operator. Es nimmt jedes Element im Array mappedStates und wandelt sie in direkte Argumente der Methode Object.assign um.

Dieses Beispiel macht es deutlich:

%Vor%

ist dasselbe wie

%Vor%

Das ist es!

    
Johannes Fahrenkrug 28.12.2017 19:33
quelle

Tags und Links