用js比较两个数组里的对象,把不同的对象放到新的数组里
时间: 2024-01-21 21:16:04 浏览: 37
你可以使用 JavaScript 中的 Array.prototype.filter() 和 Array.prototype.some() 方法来比较两个数组里的对象,筛选出不同的对象并放到新的数组里。
假设有两个数组 arr1 和 arr2,每个数组里都包含了一些对象,你可以按照以下方式进行比较:
```javascript
const arr1 = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 3, name: 'Mike'}];
const arr2 = [{id: 1, name: 'John'}, {id: 4, name: 'Lucy'}, {id: 3, name: 'Mike'}];
const differentObjs = arr1.filter(obj1 => !arr2.some(obj2 => obj1.id === obj2.id && obj1.name === obj2.name));
```
在上述代码中,我们使用了 Array.prototype.filter() 方法来筛选出 arr1 中与 arr2 不同的对象。在 filter() 方法的回调函数中,我们使用了 Array.prototype.some() 方法来判断 arr2 中是否存在一个与 obj1 相同的对象。如果不存在,就说明 obj1 不同于 arr2 中的任何一个对象,所以它应该被保留下来,因此 filter() 方法会把它加入到新数组 differentObjs 中。
最终,differentObjs 中将会包含两个不同的对象:{id: 2, name: 'Jane'} 和 {id: 4, name: 'Lucy'}。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)