javascript - 数组 groupBy 和 sum 值
问题描述
我有一个这样的数组:
let purchases = [{
year: 2019,
sum: 3000
},
{
year: 2019,
sum: 5500
},
{
year: 2020,
sum: 2300
}
]
我需要计算每一年总和的值,也就是得到下面的结果。
{"2019": 8500, "2020": 2300}
我怎样才能做到这一点?
解决方案
这可以使用Array.prototype.reduce
.
let purchases = [{
year: 2019,
sum: 3000
},
{
year: 2019,
sum: 5500
},
{
year: 2020,
sum: 2300
}
];
const output = purchases.reduce((acc, cur) => {
acc[cur.year] ? acc[cur.year] += cur.sum : acc[cur.year] = cur.sum;
return acc;
}, {});
console.log(output);
推荐阅读
- mongodb - 如何从 kubernetes 集群内部访问主机的 localhost
- node.js - 从后端 api 获取图像并以角度显示
- python - 将 csv 文件中的点绘制到 geopandas 地图上
- python - 当我连接两个字符串系列时,我可以强制 Python 仅以字符串格式返回吗?
- c# - 将方法的结果设置为变量我可以以文本字段形式返回 c#
- javascript - 更新其他对象内对象的状态,React js
- elasticsearch - 如何使用范围在kibana中获得一周的第一天?
- php - php从另一个数组创建关联数组
- python - 用 Python 替换 Facebook 帖子的图像
- tensorflow - 在 Tensorflow/Keras 中使用一种损失函数和度量另一种损失函数的目的?