我有5颗星,每次用户可以选择从1-5开始评分。所以我有这样的分数
stars = [0,0,2,3,5]
//我在数据库中有这个
2个用户评分为3星,3个用户给了4个星,5个用户给了5个星,但我如何计算在客户端显示的分数?
答案 0 :(得分:3)
您可以将加权值相加并除以评级计数。
var stars = [0, 0, 2, 3, 5],
count = 0,
sum = stars.reduce(function (sum, item, index) {
count += item;
return sum + item * (index + 1);
}, 0);
console.log(sum / count);

答案 1 :(得分:1)
另一种解决方案同样有效但可能更容易理解。
/home/spark/spark/bin/
答案 2 :(得分:0)
这是您的完整解决方案..如果不起作用请发表评论..
HTML
<p id="demo"></p>
的Javascript
<script type="text/javascript">
stars = [0,0,2,3,5]
var sum = stars.reduce(add, 0);
function add(a, b) {
return a + b;
}
var text='';
for (i = 0; i < stars.length; i++) {
text += "The percentege of the star "+(i+1)+ " is :"+ (stars[i]/sum)*100 + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
按照此处... https://jsfiddle.net/zoux6v1x/1/了解详情