假设有两个对象数组arr1和arr2,每个对象具有相同的属性键。我们想找出arr2中不包含在arr1中的对象,并将它们映射为新的数组。
可以使用filter()和every()方法来解决这个问题。我们将arr2过滤为只包含arr1中不存在的对象,然后使用map()方法将结果映射为一个新数组。
以下是JavaScript代码示例:
const arr1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
const arr2 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'David' },
{ id: 5, name: 'Eve' }
];
const missingValues = arr2.filter(obj2 => {
return arr1.every(obj1 => {
return obj2.id !== obj1.id;
});
}).map(obj => {
return obj.id;
});
console.log(missingValues); // [4, 5]
在此示例中,我们使用filter()和every()方法过滤了arr2中不包含在arr1中的对象,并使用map()方法将结果映射为id值的新数组。最终结果为[4, 5],因为arr2中的对象4和5不在arr1中。