J'essaie d'intersecter 2 tableaux d'objets par un attribut en utilisant Lodash intersectWith
.lodash - using intersectionWith pour obtenir l'intersection des tableaux d'objets résulte en un problème d'unicité
Par exemple:
var objects = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
// Intersect by objects with the same value for 'x'
_.intersectionWith(objects, others, (obj, oth) => obj.x === oth.x);
Ce faisant, je reçois un résultat inattendu de seulement 1 objet:
[{ x: 1, y: 1 }]
au lieu de l'ensemble du premier tableau:
[{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]
Pour une raison quelconque, la fonction intersectionWith
ne renvoie apparemment que des résultats uniques en fonction de l'attribut par rapport.
Quelqu'un peut-il expliquer pourquoi cela se produit?
Salut, merci d'avoir répondu. J'ai remarqué cette section à la documentation. c'est juste que je pensais que le comportement attendu serait d'appliquer l'unicité sur l'ensemble de l'objet d'entrée, et non par le comparateur. – codeIt