it-swarm.com.de

Lodash entfernt Duplikate aus dem Array

Das sind meine Daten:

[
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello-how-are-you',
        id: "23"    
    },
    {
        url: 'www.example.com/i-like-cats',
        id: "24"    
    },
    {
        url: 'www.example.com/i-like-pie',
        id: "25"    
    }
]

Wie kann ich mit Lodash Objekte mit doppelten ID-Schlüsseln entfernen? Etwas mit Filter, Karte und Unikat, aber nicht ganz sicher.

Mein echter Datensatz ist viel größer und hat mehr Schlüssel, aber das Konzept sollte das gleiche sein.

149
ChrisRich

_.uniq funktioniert für die aktuelle Version nicht mehr, da lodash 4.0.0 diese Umstellung hat. Verwenden Sie also entweder

_.uniqBy(data, function (e) {
  return e.id;
});

oder

_.uniqBy(data, 'id');

Dokumentation: https://lodash.com/docs#uniqBy


Für ältere Versionen von lodash (<4.0.0)

Unter der Annahme, dass die Daten durch id eindeutig sein sollten und Ihre Daten in der Variable data gespeichert sind, können Sie die Funktion uniq () folgendermaßen verwenden:

_.uniq(data, function (e) {
  return e.id;
});

Oder einfach

_.uniq(data, 'id');
295
ntalbs

Sie können die lodash-Methode _.uniq verwenden.With ist in der aktuellen Version von lodash 4.17.2 verfügbar.

Beispiel:

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];

_.uniqWith(objects, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]

Weitere Informationen: https://lodash.com/docs/#uniqWith

39
zdrsoft

Verwenden Sie einfach _.uniqBy () . Es wird eine duplikationsfreie Version eines Arrays erstellt.

Dies ist ein neuer Weg und verfügbar ab Version 4.0.0.

_.uniqBy(data, 'id');

oder

_.uniqBy(data, obj => obj.id);
1
Hassan Ajaz

Oder verwenden Sie einfach union für ein einfaches Array.

1
Vixson

Sie können auch unionBy für 4.0.0 und höher wie folgt verwenden: Let uniques = _.unionBy (data, 'id')

0
Himanshu Tanwar