在JavaScript中,可以使用以下几种方法从两个数组中删除对象引用:
const array1 = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 3, name: 'Bob'}];
const array2 = [{id: 2, name: 'Jane'}, {id: 4, name: 'Alice'}, {id: 5, name: 'Tom'}];
const filteredArray = array1.filter(obj1 => !array2.some(obj2 => obj2.id === obj1.id));
console.log(filteredArray);
这段代码将从array1
中删除与array2
中具有相同id的对象引用,并将结果存储在filteredArray
中。
array1
,并将不在array2
中的对象引用添加到一个新数组中。const array1 = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 3, name: 'Bob'}];
const array2 = [{id: 2, name: 'Jane'}, {id: 4, name: 'Alice'}, {id: 5, name: 'Tom'}];
const filteredArray = array1.reduce((acc, obj1) => {
if (!array2.some(obj2 => obj2.id === obj1.id)) {
acc.push(obj1);
}
return acc;
}, []);
console.log(filteredArray);
这段代码将从array1
中删除与array2
中具有相同id的对象引用,并将结果存储在filteredArray
中。
array1
,并使用indexOf()方法检查每个对象引用是否存在于array2
中。如果不存在,则将其添加到一个新数组中。const array1 = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 3, name: 'Bob'}];
const array2 = [{id: 2, name: 'Jane'}, {id: 4, name: 'Alice'}, {id: 5, name: 'Tom'}];
const filteredArray = [];
for (let i = 0; i < array1.length; i++) {
if (array2.findIndex(obj2 => obj2.id === array1[i].id) === -1) {
filteredArray.push(array1[i]);
}
}
console.log(filteredArray);
这段代码将从array1
中删除与array2
中具有相同id的对象引用,并将结果存储在filteredArray
中。
以上三种方法都可以实现从两个数组中删除对象引用的操作。根据具体的业务需求和数据规模,选择合适的方法来实现。
领取专属 10元无门槛券
手把手带您无忧上云