问题:删除两个数组中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));