Wie verwende ich Lodash, um zwei Sammlungen basierend auf einem Schlüssel zusammenzuführen?

8

Ich habe zwei Sammlungen und die Objekte haben einen gemeinsamen Schlüssel "userId". Wie unten:

%Vor%

Ich möchte sie basierend auf "userId" zusammenführen, um Folgendes zu erzeugen:

%Vor%

Ich habe diese bisher:

%Vor%

Welches Ergebnis:

%Vor%

Wie kann ich sie jetzt zusammenführen?

Ich habe versucht _.keyBy, aber es ergibt sich:

%Vor%

was falsch ist.

Was ist der letzte Schritt, den ich tun sollte?

    
murvinlai 29.01.2016, 18:55
quelle

4 Antworten

20

Sie können _.map() , verwenden _.assign() und _.find() .

%Vor%

Geige-Demo

%Vor% %Vor%
    
Tushar 29.01.2016 19:05
quelle
3

Nur der Vollständigkeit halber: Ein Vorschlag ohne Bibliothek.

%Vor%
    
Nina Scholz 29.01.2016 22:10
quelle
2

Lodash hat eine merge -Methode, die an Objekten funktioniert (Objekte mit demselben Schlüssel werden zusammengeführt). In dieser Demo werden die Arrays a und b zuerst in Objekte konvertiert (wobei userId der Schlüssel ist), dann zusammengeführt und das Ergebnis wieder in ein Array konvertiert ( _.values ) (loswerden der Schlüssel ). _.flatten ist dann notwendig, weil _.values eine zusätzliche Array-Ebene hinzufügt.

%Vor%     
quelle
1

Probieren Sie diese Demo

aus %Vor%     
ofir fridman 29.01.2016 19:17
quelle