在JavaScript中,可以通过数组中嵌套的key进行分组,并计算sum和avg。下面是一个实现的示例代码:
// 原始数据
const data = [
{ category: 'A', value: 10 },
{ category: 'B', value: 20 },
{ category: 'A', value: 30 },
{ category: 'B', value: 40 },
{ category: 'C', value: 50 }
];
// 分组并计算sum和avg
const result = data.reduce((acc, obj) => {
const key = obj.category;
if (!acc[key]) {
acc[key] = { sum: 0, count: 0 };
}
acc[key].sum += obj.value;
acc[key].count++;
return acc;
}, {});
// 计算avg
Object.keys(result).forEach(key => {
result[key].avg = result[key].sum / result[key].count;
});
console.log(result);
上述代码中,我们使用reduce
方法对原始数据进行遍历和分组。通过category
作为分组的key,累加每个分组的value
值,并记录每个分组的元素个数。最后,通过遍历结果对象,计算每个分组的平均值(avg
)。
这个问题涉及到了JavaScript中的数组操作和对象操作。在实际开发中,可以根据具体需求进行适当的优化和扩展。
领取专属 10元无门槛券
手把手带您无忧上云