前端对比两个数组对象中的数据,相等的不重复添加到新数组
时间: 2024-02-09 16:12:58 浏览: 89
可以使用 JavaScript 的 Array.prototype.filter() 和 Array.prototype.some() 方法来实现此功能。具体实现步骤如下:
1. 遍历第一个数组对象,使用 filter() 方法筛选出在第二个数组对象中不存在的数据。
2. 在第二个数组对象中使用 some() 方法判断筛选出来的数据是否已经存在于新数组中,如果不存在则将其添加到新数组中。
代码示例:
```javascript
const arr1 = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}];
const arr2 = [{id: 2, name: 'Bob'}, {id: 4, name: 'David'}, {id: 5, name: 'Emma'}];
const newArr = arr1.filter(item => {
return !arr2.some(obj => obj.id === item.id && obj.name === item.name);
});
arr2.forEach(item => {
if (!newArr.some(obj => obj.id === item.id && obj.name === item.name)) {
newArr.push(item);
}
});
console.log(newArr); // [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 4, name: 'David'}, {id: 5, name: 'Emma'}]
```
上述代码中,首先使用 filter() 方法筛选出在 arr2 中不存在的数据。然后遍历 arr2 数组,使用 some() 方法判断筛选出来的数据是否已经存在于新数组 newArr 中,如果不存在则将其添加到新数组中。最后输出新数组 newArr 即可。
阅读全文