Lodash supprime les doublons du tableau
Ce sont 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.
3 réponses
_.uniq
ne fonctionne plus pour la version actuelle car lodash 4.0.0 a ce changement de rupture . Donc, utilisez soit
_.uniqBy(data, function (e) {
return e.id;
});
Ou
_.uniqBy(data, 'id');
Documentation: https://lodash.com/docs#uniqBy
Pour les anciennes versions de lodash(
En Supposant que les données doivent être uniques par id
et vos données sont stockées dans data
variable, vous pouvez utiliser uniq() la fonction comme ceci:
_.uniq(data, function (e) {
return e.id;
});
, Ou simplement
_.uniq(data, 'id');
Vous pouvez utiliser la méthode lodash _.uniqavec, 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'infos: https://lodash.com/docs/#uniqWith
Vous pouvez également utiliser unionBy pour 4.0.0 et versions ultérieures, comme suit: laissez uniques = _.unionBy(données, 'id')