【发布时间】:2021-09-12 02:08:28
【问题描述】:
我正在做一个项目,将葡萄酒的年龄与其分数进行比较,并希望制作一个折线图,X 轴为年份,Y 轴为每个年份的平均分数。我有一个对象数组,每个对象包含两个元素,年龄和分数,并希望按每个年龄分组并找到该年龄的平均分数。
我有一个通过 Global Wine Score 的请求创建的 CSV 文件,其中包含年份、评论日期、分数等。在 python 中,我通过从年份中减去评论年份来创建一个年龄列。在 Javascript 中,我创建了一个新数组:
var newArr = countryFilter.map(function(elem) {
return {
age: elem.wine_age,
score: elem.score
};
});
这是我的数组的样子:
0: Object { age: "116", score: "98.51" }
age: "116"
score: "98.51"
1: Object { age: "113", score: "84.46" }
age: "113"
score: "84.46"
length: 23258
我试过了,但是任何具有超过 1 个唯一分数的对象都会产生 NAN。
const reduced = newArr.reduce(function(m, d){
if(!m[d.age]){
m[d.age] = {...d, count: 1};
return m;
}
m[d.age].score += d.score;
m[d.age].count += 1;
return m;
},{});
const result = Object.keys(reduced).map(function(k){
const item = reduced[k];
return {
wine_age: item.age,
score: item.score/item.count,
}
})
console.log(result);
我将如何找到每个酒龄的平均葡萄酒分数?
【问题讨论】:
标签: javascript arrays group-by mean