Lodash Union von Arrays von Objekten

8

Ich möchte die Funktion _.union verwenden, um eine Vereinigung von zwei Objektgruppen zu erstellen. Union arbeitet nur mit Arrays von Primitiven, wenn es === verwendet, um zu prüfen, ob zwei Werte gleich sind.

Ich möchte Objekte mit einer Schlüsseleigenschaft vergleichen: Objekte mit derselben Schlüsseleigenschaft würden als gleich angesehen. Gibt es einen schönen funktionalen Weg, um dies ideal mit lodash zu erreichen?

    
Janos 28.03.2015, 18:17
quelle

5 Antworten

12

Eine nicht-pure lodash-Möglichkeit, dies zu tun, aber mit der array.concat-Funktion können Sie dies einfach entlang uniq() :

tun %Vor%

Ein alternativer Ansatz wäre die Verwendung von flatten () und uniq () :

%Vor%     
Craig Suchanec 28.03.2015, 20:15
quelle
6

Und was ist mit UniqBy mit einer Zusammenfassung der beiden Arrays davor?

  

_. uniqBy ([{'x': 1}, {'x': 2}, {'x': 1}], 'x');

     

Ergebnis → [{'x': 1}, {'x': 2}]

    
MatthieuH 29.01.2016 15:48
quelle
3

Spät zur Party, aber _.unionWith ist viel besser darin, zu tun, was Sie wollen.

%Vor%     
alaboudi 24.04.2017 03:59
quelle
1

lodash merge Objekt aus Arrays

zusammen

%Vor% %Vor%
    
crapthings 20.01.2017 05:45
quelle
0

_.unionBy(array1, array2, matcherFn);

    
olegzhermal 26.10.2016 11:36
quelle

Tags und Links