根据相同的两个属性值将两个数组对象合并
时间: 2023-09-11 11:08:14 浏览: 123
可以通过使用JavaScript中的`Array.prototype.reduce`方法来合并两个数组对象,具体实现如下:
```javascript
const arr1 = [{ name: 'Alice', age: 20 }, { name: 'Bob', age: 25 }];
const arr2 = [{ name: 'Charlie', age: 30 }, { name: 'David', age: 35 }];
const mergedArr = [...arr1, ...arr2].reduce((acc, curr) => {
const existingObj = acc.find((obj) => obj.name === curr.name && obj.age === curr.age);
if (existingObj) {
Object.assign(existingObj, curr);
} else {
acc.push(curr);
}
return acc;
}, []);
console.log(mergedArr); // Output: [{ name: 'Alice', age: 20 }, { name: 'Bob', age: 25 }, { name: 'Charlie', age: 30 }, { name: 'David', age: 35 }]
```
在上述代码中,首先将两个数组对象合并为一个数组,然后使用`reduce`方法遍历这个数组。在每次迭代中,我们检查当前对象是否已经存在于累加器数组中,如果是,则使用`Object.assign`方法将现有对象的属性与当前对象的属性合并。否则,我们将当前对象添加到累加器数组中。最后,`reduce`方法返回合并后的数组对象。
阅读全文