根据相同的两个属性值将一个数组对象里面的对象合并
时间: 2024-05-01 22:19:51 浏览: 114
假设数组对象为 `arr`,属性为 `prop1` 和 `prop2`,可以使用 `reduce()` 方法和一个对象来实现:
```javascript
const arr = [
{ prop1: 'A', prop2: 1, value: 'foo' },
{ prop1: 'B', prop2: 2, value: 'bar' },
{ prop1: 'A', prop2: 1, value: 'baz' },
{ prop1: 'C', prop2: 3, value: 'qux' }
];
const mergedArr = Object.values(arr.reduce((acc, obj) => {
const key = obj.prop1 + obj.prop2;
if (!acc[key]) {
acc[key] = { ...obj };
} else {
acc[key].value += obj.value;
}
return acc;
}, {}));
console.log(mergedArr);
// Output: [
// { prop1: 'A', prop2: 1, value: 'foobaz' },
// { prop1: 'B', prop2: 2, value: 'bar' },
// { prop1: 'C', prop2: 3, value: 'qux' }
// ]
```
在每个迭代中,我们使用 `prop1` 和 `prop2` 属性的值来创建一个唯一的键,并且检查对象是否已经存在于累加器对象中。如果不存在,则将整个对象添加到累加器中。如果已经存在,则将对象的 `value` 属性追加到已存在对象的 `value` 属性中。最后,我们使用 `Object.values()` 方法将累加器对象中的值转换为数组。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.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)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)