【发布时间】:2020-01-24 06:42:59
【问题描述】:
我正在尝试使用array.filter() 来比较两个数组并根据某个属性 (id) 分离出两个数组共有的值,而不是它们没有共同点的值。我要推送到新数组(recordsToUpdate)的常见 id。我想将剩余的元素从arr2 推送到一个新数组(recordsToInsert)。
我尝试过的方法不起作用。我怎样才能重做这个以获得我想要的结果? - (在这里的示例中应该是一个包含 1 个公共元素 {id: 3} 的数组,以及来自 arr2 的其余元素的另一个数组):
const arr1 = [{id: 1}, {id: 2}, {id: 3}];
const arr2 = [{id: 3}, {id: 4}, {id: 5}];
let recordsToUpdate = [];
let recordsToInsert = [];
recordsToUpdate = arr1.filter(e => (arr1.id === arr2.id));
recordsToInsert = ?
console.log('recordsToUpdate: ', recordsToUpdate);
console.log('recordsToInsert: ', recordsToInsert);
期望的结果应该是:
recordsToUpdate = [{id: 3}];
recordsToInsert = [{id: 4}, {id: 5}];
【问题讨论】:
-
请同时添加想要的结果。
-
好的,我已经添加了想要的结果。两个数组之间有一个重叠值。更新了正确的信息。
标签: javascript arrays ecmascript-6