Lodash JSON阵列

问题描述:

使用lodash查找差之间发现差异:Lodash JSON阵列

c1Arr是:

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

c2Arr是:

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

执行以下代码

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

为什么我不能得到结果:

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

而是我得到(即, c2Arr)

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

你必须提供comparator功能,因为元素对象。

试试这个,

_.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

试过,但还是同样的结果。 :-( – win

+0

@Divya对我来说,它的工作,请参阅代码 – RaR

+0

谢谢,现在这个作品。将修复我的主要程序。:-) – win