删除两个数组中id相同的对象

问题:删除两个数组中id相同的对象

let data1 = [{
id: 1,
name: 2
}, {
id: 2,
name: 3
}];
let data2 = [{
id: 1,
name: 2
}, {
id: 3,
name: 4
}];

1、方案一思路双重循环、创建一个新数组,用于存储删除后的结果

let result = [];
// 遍历data1数组
for (let obj1 of data1) {
let found = false;
// 遍历data2数组
for (let obj2 of data2) {
// 如果两个对象的id相同,则将found标记为true,表示找到了相同的对象
if (obj1.id === obj2.id) {
found = true;
break;
}
}
// 如果没有找到相同的对象,则将该对象添加到结果数组中
if (!found) {
result.push(obj1);
}
}

2、方案二

data1 = data1.filter(item => data2.findIndex(it => it.id === item.id) === -1);

3、方案三

data1 = data1.filter(item1 => !data2.some(item2 => item2.id === item1.id));

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容