首先,我们需要定义两个对象数组arr1和arr2:
const arr1 = [
{id: 1, name: 'John'},
{id: 2, name: 'Jane'},
{id: 3, name: 'Bob'},
];
const arr2 = [
{id: 3, name: 'Bob'},
{id: 4, name: 'Sarah'},
{id: 5, name: 'Tom'},
{id: 6, name: 'Jessie'},
];
我们可以使用filter方法来筛选出在arr1中不存在的对象,也就是arr2中的对象。过滤器函数需要比较两个数组中的每个对象,如果两个对象的值相等,就返回false,否则返回true。
const result = arr2.filter(obj2 => !arr1.some(obj1 => obj1.id === obj2.id && obj1.name === obj2.name));
在这个例子中,我们使用箭头函数以简化filter和some方法的使用。如果arr1包含一个具有相同id和name值的对象,则some方法将返回true,并且filter函数将忽略该对象。反之,如果arr1中不存在相同的对象,则filter函数将保留该对象。
最后,我们将打印筛选后的结果:
console.log(result);
// 输出 [{id: 4, name: 'Sarah'}, {id: 5, name: 'Tom'}, {id: 6, name: 'Jessie'}]