我有一个这样的数组

var old = [ { id: 1, name: 'Super edit' },
  { id: 2, name: 'new item' },
  { id: 19, name: 'new item' } ]

var new = [ { id: 1, name: 'Super edit' },{ id: 2, name: 'new item' }]


我想得到上面两个与键id不匹配的区别。

预期结果:

[{ id: 19, name: 'new item' }]


我试过的是

_.differenceWith(old,new,_.isEqual),但同时检查idname
 我如何才能获得仅与键id相匹配的数组

最佳答案

_.differenceBy()id用作iteratee的简写。

注意:new是javascript中的reserved word,不能用于变量名。



const oldArr = [{ id: 1, name: 'Super edit' },{ id: 2, name: 'new item' },{ id: 19, name: 'new item' }]

const newArr = [ { id: 1, name: 'Super edit' },{ id: 2, name: 'new item' }]

const result = _.differenceBy(oldArr, newArr, 'id')

console.log(result)

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

关于javascript - 仅匹配一个键的两个数组的Lodash差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52109696/

10-12 12:24
查看更多