获取另一个数组中不存在的JSON对象

Ank*_*wal 1 html javascript jquery web lodash

我有两个数组.

array1 = [
 {'id':1},
 {'id': 2}
]
Run Code Online (Sandbox Code Playgroud)

array2 = [
 {'idVal':1},
 {'idVal': 2},
 {'idVal': 3},
 {'idVal': 4}
]
Run Code Online (Sandbox Code Playgroud)

我需要一种最佳方式,如果可能的话,我可以比较这两个数组,并得到一个结果数组,其中包含对象array2而不是array1.两个数组中的键具有不同的名称.结果将是,

res = [
  {'idVal': 3},
  {'idVal': 4}
]
Run Code Online (Sandbox Code Playgroud)

Ori*_*ori 5

使用_.differenceWith()比较器方法.根据文档_.difference()(差异是基于差异):

使用SameValueZero创建一个未包含在其他给定数组中的数组值数组,以进行相等比较.结果值的顺序和引用由第一个数组确定.

所以array2应该是传递给该方法的第一个参数.

var array1 = [
  {'id': 1},
  {'id': 2}
];

var array2 = [
  {'idVal': 1},
  {'idVal': 2},
  {'idVal': 3},
  {'idVal': 4}
];

var result = _.differenceWith(array2, array1, function(arrVal, othVal) {
  return arrVal.idVal === othVal.id;
});

console.log(result);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)