如何解决Javascript对象数组帮助
我正在尝试进行评分算法。最初的值都是这样的:
[
{ 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
对象数组并计算等级的最佳方法是什么。
解决方法
您可以迭代数组并收集乘积和数量以获取平均值。
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);
,
首先,您的上述计算值似乎应该有问题
emailCode
根据您提供的数组。
(5*252 + 4*124 + 3*40 + 2*29 + 1*30) / (252+124+40+29+30) = 4.13
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。