2017-09-14 3 views
1

J'ai 2 tableaux qui contiennent des éléments objectId: array1array2union Lodash des tableaux de mangouste objectId

Je veux créer une union entre ces 2 tableaux. pour que je suis en cours d'exécution:

let res = _.union(array1, array2); 

Mais res contient des doublons objectId.

Comment puis-je résoudre ce problème?

Répondre

0

Si vous cherchez à deux tableaux différents avec des chaînes de « objectIds » vous pouvez utiliser concat puis uniq pour supprimer les doublons. Ne pas oublier d'exécuter valueOf à la fin de votre chaîne Lodash pour l'appeler à exécuter.

Ci-dessous un exemple illustratif:

let array1 = ['42142141221421d', '9999']; 
 

 
let array2 = ['s421421412412fef3', '42142141221421d', '1234']; 
 

 
const res = _(array1) 
 
     .concat(array2) 
 
     .uniq() 
 
     .valueOf(); 
 

 
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>

+0

mes tableaux ne sont pas des objets en eux, mais seulement ObjectIds. exemple: array1 = ["s421421412412fef3", "42142141221421d"]. –

+0

Désolé pour le délai @YoniMayer. Découvrez la nouvelle réponse ci-dessus; Cela devrait résoudre votre problème. –

0

Vous pouvez essayer d'utiliser _.uniqBy (res, 'ObjectId'); Cela devrait supprimer objectId en double dans votre nouveau tableau res

let newRes = _.uniqBy(res, 'ObjectId');