js把数组相同属性的对象分组
时间: 2023-10-09 09:04:26 浏览: 123
js代码-数组对象根据某个值相同合并分组
如果你想将一个数组中相同属性的对象分组,可以使用JavaScript的reduce方法和对象的属性来实现。具体的方法如下:
假设你的原始数组长这样:
```javascript
var arr = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 20 },
{ name: 'David', age: 25 }
];
```
现在你想根据age属性将这个数组分组,可以使用reduce方法来实现:
```javascript
var groups = arr.reduce(function (result, current) {
if (!result[current.age]) {
result[current.age] = [];
}
result[current.age].push(current);
return result;
}, {});
```
这段代码将数组arr使用reduce方法进行遍历,每次遍历将当前元素的age属性作为key,将当前元素加入到对应的数组中。最后返回一个对象,对象的属性名为age的值,属性值为对应的数组。
这样,你就可以将原始数组根据age属性分成两组,分别是年龄为20岁和25岁的人。你可以使用console.log(groups)来查看结果:
```javascript
{
20: [
{ name: 'Alice', age: 20 },
{ name: 'Charlie', age: 20 }
],
25: [
{ name: 'Bob', age: 25 },
{ name: 'David', age: 25 }
]
}
```
这样,你就成功地将原始数组按照age属性分成了两组。
阅读全文