lodash/trait de soulignement; comparer deux objets et supprimer les doublons
Comme vous pouvez le voir dans l'image ci-dessous, j'ai quelques retourné json data
avec trois objets; chacune contient un clients id => les données.
exact_match : {104}
match_4 : {104, 103}
match_2 : {104, 103, 68}
Comment puis-je "trim" ou de supprimer la duplication d'objets basé sur les précédents? quelque chose comme:
exact_match : {104}
match_4 : {103}
match_2 : {68}
J'ai essayé _.différence mais ne fonctionne pas (Peut-être parce que c'est pour les tableaux non comme des objets?):
var exact_match = data.exact_match,
match_four_digits = _.difference(data.match_4, data.exact_match),
match_two_digits = _.difference(data.match_2, data.exact_match, data.match_4),
Toute aide serait appréciée 🙂
Mise à jour
J'ai besoin que la valeur retournée est la même de l'objet de données à la place d'un nouveau tableau 🙂
Avez-vous essayé avec
Même objet référence, ou le nouvel objet avec les mêmes touches?
Merci, j'ai déjà trouvé la solution..
_.keys
?Même objet référence, ou le nouvel objet avec les mêmes touches?
Merci, j'ai déjà trouvé la solution..
OriginalL'auteur numediaweb | 2015-03-04
Vous devez vous connecter pour publier un commentaire.
Il semble que vous voulez diff clés (ou plutôt, il serait efficace d' —
_.les touches
)Ou, vous pouvez toujours convertir votre objet à un tableau de paires si vous voulez comparer dans les objets trop (
_.paires
):OriginalL'auteur Jonathan Allard
Je voudrais créer une carte appelée
unique
, par exemplevar unique = {};
et puis itérer sur chaque touche dans vos données et vérifier si c'est dansunique
. Si c'est dansunique
, supprimer l'entrée associée à cette clé, donc la suppression des doublons.Vous pouvait tirer de cette case comme un
alreadyFound
méthode:Parcourir vos données et de vérifier
alreadyFound(key)
pourkey
dans vos données et de supprimer la clé sialreadyFound(key)
retournetrue
.Vous pouvez aller jouer avec lodash/trait de soulignement méthodes, mais celles-ci pourraient être inefficaces, selon la façon dont vous les utilisez (et la façon dont ils sont mis en œuvre) et cela devrait fonctionner dans le temps linéaire.
Il ressemble pour votre cas d'utilisation spécifiques de la solution complète serait quelque chose comme:
OriginalL'auteur KhalilRavanna