js 数据 按照一个字段进行聚合
时间: 2023-09-02 15:02:27 浏览: 49
在JavaScript中,可以使用reduce()方法来实现对数据按照一个字段进行聚合。
首先,假设我们有一个包含多个对象的数组,每个对象都有一个字段,我们想按照这个字段进行聚合。
我们可以使用reduce()方法来遍历整个数组,并在每次迭代时更新一个累加器对象。累加器对象可以使用字段的值作为键,并将具有相同键的对象聚合到一个数组中。
以下是一个示例代码:
```javascript
const data = [
{ name: 'John', age: 24, city: 'New York' },
{ name: 'Anna', age: 30, city: 'London' },
{ name: 'Peter', age: 40, city: 'New York' },
{ name: 'Tom', age: 35, city: 'London' },
{ name: 'Mary', age: 28, city: 'New York' },
];
const aggregatedData = data.reduce((accumulator, currentValue) => {
const key = currentValue.city;
if (!accumulator[key]) {
accumulator[key] = [];
}
accumulator[key].push(currentValue);
return accumulator;
}, {});
console.log(aggregatedData);
```
运行以上代码,将会输出以下结果:
```
{
'New York': [
{ name: 'John', age: 24, city: 'New York' },
{ name: 'Peter', age: 40, city: 'New York' },
{ name: 'Mary', age: 28, city: 'New York' }
],
'London': [
{ name: 'Anna', age: 30, city: 'London' },
{ name: 'Tom', age: 35, city: 'London' }
]
}
```
以上代码将数据按照城市进行了聚合,并生成了一个新的对象,其中每个城市都对应一个包含该城市的对象的数组。
通过reduce()方法,我们可以根据任何字段对数据进行聚合。只需要根据需要修改累加器对象的键即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)