groupby js
时间: 2023-11-12 18:58:09 浏览: 38
groupby 是一个数据处理中常用的函数,可以对数据进行分组操作。在 JavaScript 中,可以使用 Array.prototype.reduce() 方法来实现 groupby 的功能。
具体实现方法如下:
```javascript
function groupBy(arr, key) {
return arr.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
}
```
其中,arr 是需要进行分组的数组,key 是用来分组的属性名。
例如,我们有以下数据:
```javascript
const data = [
{ name: 'Alice', age: 20, gender: 'female' },
{ name: 'Bob', age: 25, gender: 'male' },
{ name: 'Charlie', age: 30, gender: 'male' },
{ name: 'David', age: 35, gender: 'male' },
{ name: 'Eva', age: 40, gender: 'female' },
];
```
如果我们想按照 gender 进行分组,可以这样调用 groupBy 函数:
```javascript
const result = groupBy(data, 'gender');
console.log(result);
```
输出结果为:
```javascript
{
female: [
{ name: 'Alice', age: 20, gender: 'female' },
{ name: 'Eva', age: 40, gender: 'female' }
],
male: [
{ name: 'Bob', age: 25, gender: 'male' },
{ name: 'Charlie', age: 30, gender: 'male' },
{ name: 'David', age: 35, gender: 'male' }
]
}
```