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