js从一个对象数组中删除另一个对象数组的所有元素
时间: 2023-05-23 20:07:28 浏览: 271
js删除数组中指定元素
A:
以下是使用filter方法的示例:
```javascript
let arr1 = [{id: 1, name: "John"}, {id: 2, name: "Jane"}, {id: 3, name: "Bob"}];
let arr2 = [{id: 1, name: "John"}, {id: 3, name: "Bob"}];
// 从arr1中删除arr2中的所有元素
arr1 = arr1.filter(item1 => !arr2.some(item2 => item1.id === item2.id));
console.log(arr1); // [{id: 2, name: "Jane"}]
```
在上面的代码中,我们使用了JavaScript的filter方法和some方法。filter方法返回一个新的数组,其中包含所有通过指定函数的测试的元素。some方法用于检查数组中是否有至少一个元素满足给定条件。
首先,我们将两个对象数组(arr1和arr2)分配给变量。然后,我们使用filter方法过滤arr1数组,以从中删除arr2中包含的所有元素。在这个过滤器函数中,我们使用some方法来检查arr2中是否存在一个具有与当前项(item1)相同的id属性的元素(item2)。如果存在,filter方法将忽略当前项,否则它将将项包含在返回的新数组中。
在上面的示例中,arr1数组中id属性为1和3的元素都被arr2数组包含,因此它们被从arr1中删除后,只剩下一个元素{id: 2,name:“Jane”}。
阅读全文