2017-03-07 6 views
0

Utilisation lodash pour la différence trouver:Lodash différence trouver entre les tableaux JSON

c1Arr est:

[ { varName: 'city', varValue: 'cccccccc' }, 
    { varName: 'country', varValue: 'dddddddd' } 
] 

c2Arr est:

[ { varName: 'abc', varValue: 'aaa' }, 
    { varName: 'city', varValue: 'cccccccc' }, 
    { varName: 'country', varValue: 'dddddddd' } 
] 

exécution du code suivant

var dArr = _.difference(c2Arr, c1Arr); 
    console.log(dArr); 

Pourquoi je ne reçois pas le résultat:

[ { varName: 'abc', varValue: 'aaa' }] 

Au lieu de cela (i.e. c2Arr)

[ { varName: 'abc', varValue: 'aaa' }, 
    { varName: 'city', varValue: 'cccccccc' }, 
    { varName: 'country', varValue: 'dddddddd' } 
] 

Répondre

1

Vous devez fournir la fonction comparator, puisque les éléments sont l'objet.

Essayez ceci,

_.differenceWith(c2Arr, c1Arr, _.isEqual); 

var c1Arr = [{ 
 
    varName: 'city', 
 
    varValue: 'cccccccc' 
 
}, { 
 
    varName: 'country', 
 
    varValue: 'dddddddd' 
 
}] 
 

 
var c2Arr = [{ 
 
    varName: 'abc', 
 
    varValue: 'aaa' 
 
}, { 
 
    varName: 'city', 
 
    varValue: 'cccccccc' 
 
}, { 
 
    varName: 'country', 
 
    varValue: 'dddddddd' 
 
}] 
 

 
var dArr = _.differenceWith(c2Arr, c1Arr, _.isEqual); 
 
console.log(dArr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>

+0

Essayé, mais toujours le même résultat. :-( – win

+0

@Divya Pour moi son fonctionnement, Voir le code – RaR

+0

Merci, cela fonctionne maintenant. Va résoudre mon programme principal. :-) – win