我正在尝试进行评分算法。最初的值都是这样的:
[
{ rating: 1, amount: 252 },
{ rating: 2, amount: 124 },
{ rating: 3, amount: 40 },
{ rating: 4, amount: 29 },
{ rating: 5, amount: 30 },
];
例如,rating
是值,amount
是留下4星级评价的人数
我想做的就是获取这些值并计算以下内容以获得评分
(5*252 + 4*124 + 3*40 + 2*29 + 1*33) / (252+124+40+29+33) = 4.11
所以我的问题是,像我上面用基本数学所做的那样,采用initialized
对象数组并计算等级的最佳方法是什么。
答案 0 :(得分:1)
您可以迭代数组并收集乘积和数量以获取平均值。
const
data = [{ rating: 1, amount: 252 }, { rating: 2, amount: 124 }, { rating: 3, amount: 40 }, { rating: 4, amount: 29 }, { rating: 5, amount: 30 }],
{ sum, count } = data.reduce((r, { rating, amount }) => {
r.sum += rating * amount;
r.count += amount;
return r;
}, { sum: 0, count: 0 }),
average = sum /count;
console.log(average);
答案 1 :(得分:-1)
首先,您的上述计算值似乎应该有问题
emailCode
根据您提供的数组。
(5*252 + 4*124 + 3*40 + 2*29 + 1*30) / (252+124+40+29+30) = 4.13