gpt4 book ai didi

arrays - 使用 ES6 或 TypeScript 获取两个对象数组之间的差异

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:42 28 4
gpt4 key购买 nike

我有以下数组:

  arr1 = [{
id: 1,
name: 'Diego',
age: 23
}, {
id: 2,
name: 'Brian',
age: 18
}]

arr2 = [{
id: 1,
name: 'Diego',
age: 23
}, {
id: 2,
name: 'Brian',
age: 18
}, {
id: 3,
name: 'Pikachu',
age: 88
}]

我需要得到这两个数组之间的区别,期望的结果是:

arr3 [{id:3, name: 'Pikachu', age: 88}]

如何使用 ES6TypeScript 解决这个问题?

我尝试使用 SET , 但没有用。

最佳答案

可能是这样的:

let ids1 = arr1.map(item => item.id);
let ids2 = arr2.map(item => item.id);

let diff = ids1.map((id, index) => {
if (ids2.indexOf(id) < 0) {
return arr1[index];
}
}).concat(ids2.map((id, index) => {
if (ids1.indexOf(id) < 0) {
return arr2[index];
}
})).filter(item => item != undefined);

( code in playground )

关于arrays - 使用 ES6 或 TypeScript 获取两个对象数组之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700505/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com