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>
试过,但还是同样的结果。 :-( – win
@Divya对我来说,它的工作,请参阅代码 – RaR
谢谢,现在这个作品。将修复我的主要程序。:-) – win