js将一个对象组成的数据,按照某字段分成多个分组
时间: 2024-05-12 12:15:10 浏览: 37
可以使用JavaScript中的reduce()方法来实现按照某个字段分组。假设有以下数据:
```javascript
let data = [
{ name: 'John', age: 28, gender: 'male' },
{ name: 'Jane', age: 35, gender: 'female' },
{ name: 'Bob', age: 42, gender: 'male' },
{ name: 'Alice', age: 22, gender: 'female' },
{ name: 'David', age: 31, gender: 'male' },
{ name: 'Mary', age: 29, gender: 'female' },
];
```
如果要按照性别分组,则可以使用以下代码:
```javascript
let groupedData = data.reduce((acc, curr) => {
let gender = curr.gender;
if (!acc[gender]) {
acc[gender] = [];
}
acc[gender].push(curr);
return acc;
}, {});
console.log(groupedData);
```
这段代码中,reduce()方法遍历了原始数据,并将每个对象按照性别分组。最终的输出结果如下所示:
```javascript
{
male: [
{ name: 'John', age: 28, gender: 'male' },
{ name: 'Bob', age: 42, gender: 'male' },
{ name: 'David', age: 31, gender: 'male' }
],
female: [
{ name: 'Jane', age: 35, gender: 'female' },
{ name: 'Alice', age: 22, gender: 'female' },
{ name: 'Mary', age: 29, gender: 'female' }
]
}
```
可以看到,最终的输出结果是一个对象,其中每个属性都表示一个分组,属性值则是对应分组中的对象数组。
阅读全文