Lodash supprime les doublons du tableau

Voici mes données:

[ { 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" } ] 

Avec Lodash, comment puis-je supprimer des objets avec des clés d'identification en double? Quelque chose avec filtre, carte et unique, mais pas tout à fait sûr.

Mon ensemble de données réel est beaucoup plus grand et a plus de clés, mais le concept devrait être le même.

_.uniq ne fonctionne plus pour la version actuelle, car lodash 4.0.0 a ce changement de rupture . Utilisez donc soit

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

ou

 _.uniqBy(data, 'id'); 

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


Pour les anciennes versions de lodash (<4.0.0)

En supposant que les données doivent être uniques par id et vos données sont stockées dans data variable de data , vous pouvez utiliser une fonction uniq () comme ceci:

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

Ou simplement

 _.uniq(data, 'id'); 

Vous pouvez utiliser lodash method _.uniqWith, il est disponible dans la version actuelle de lodash 4.17.2.

Exemple:

 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 }] 

Plus d'informations: https://lodash.com/docs/#uniqWith