JS 将数组对象中某个相同属性值的对象归类到第一个对象中
时间: 2024-03-12 16:43:14 浏览: 94
可以使用 JavaScript 的 reduce() 方法来实现这个功能。具体步骤如下:
1. 首先定义一个空对象,用于存储归类后的对象。
2. 遍历原数组,对于每个对象,取出需要归类的属性值,如果该属性值已经在归类后的对象中存在,则将当前对象合并到已存在的对象中,否则将当前对象添加到归类后的对象中。
3. 最后将归类后的对象转为数组即可。
下面是示例代码:
```
const arr = [
{ id: 1, type: 'A', name: 'obj1' },
{ id: 2, type: 'B', name: 'obj2' },
{ id: 3, type: 'A', name: 'obj3' },
{ id: 4, type: 'C', name: 'obj4' },
{ id: 5, type: 'B', name: 'obj5' },
{ id: 6, type: 'A', name: 'obj6' },
];
const groupedObj = arr.reduce((result, obj) => {
const key = obj.type;
if (result[key]) {
result[key].push(obj);
} else {
result[key] = [obj];
}
return result;
}, {});
const groupedArr = Object.values(groupedObj);
console.log(groupedArr);
```
输出结果为:
```
[
[
{ id: 1, type: 'A', name: 'obj1' },
{ id: 3, type: 'A', name: 'obj3' },
{ id: 6, type: 'A', name: 'obj6' }
],
[
{ id: 2, type: 'B', name: 'obj2' },
{ id: 5, type: 'B', name: 'obj5' }
],
[ { id: 4, type: 'C', name: 'obj4' } ]
]
```
可以看到,原数组中相同 type 属性值的对象已经被归类到同一个数组中了。
阅读全文