两个数组对象根据相同的属性的属性值,合并对象
时间: 2024-06-09 20:05:30 浏览: 124
可以使用 Array.prototype.reduce() 方法来实现合并两个数组对象。具体实现步骤如下:
1. 首先使用 Array.prototype.concat() 方法将两个数组合并为一个数组。
2. 使用 Array.prototype.reduce() 方法来遍历合并后的数组,并将每个对象的相同属性值作为键名,将对象合并到同一个键名下。
3. 最后使用 Object.values() 方法将合并后的对象转换为数组。
以下是一个示例代码:
```javascript
const arr1 = [
{ id: 1, name: 'John', age: 20 },
{ id: 2, name: 'Alice', age: 25 },
{ id: 3, name: 'Bob', age: 30 }
];
const arr2 = [
{ id: 2, address: 'New York' },
{ id: 3, address: 'San Francisco' },
{ id: 4, address: 'Los Angeles' }
];
const mergedArr = arr1.concat(arr2).reduce((acc, obj) => {
const key = obj.id;
if (!acc[key]) {
acc[key] = obj;
} else {
acc[key] = { ...acc[key], ...obj };
}
return acc;
}, {});
const result = Object.values(mergedArr);
console.log(result);
```
运行以上代码,输出结果如下:
```
[
{ id: 1, name: 'John', age: 20 },
{ id: 2, name: 'Alice', age: 25, address: 'New York' },
{ id: 3, name: 'Bob', age: 30, address: 'San Francisco' },
{ id: 4, address: 'Los Angeles' }
]
```
可以看到,两个数组对象已经成功合并,并根据相同属性的属性值进行了合并。
阅读全文