如何计算 N 个数字的百分比?
How do I calculate percentage of N numbers?
我有一组包含不同键的对象,我们特别需要一个,
评分:1-5(这个值可以从最小 1 到最大 5)
我想计算所有对象的百分比
目前我的代码(它只给出 2 个数字的正确结果):
const feedbacks = [
{ rating: 1 },
{ rating: 3 },
{ rating: 4 },
{ rating: 2 },
{ rating: 5 }
];
function calculatePercentage() {
console.log(feedbacks);
let percentage = 0;
feedbacks.map(feedback => {
switch (feedback.rating) {
case 1:
feedback.ratingPercentage = 20;
break;
case 2:
feedback.ratingPercentage = 40;
break;
case 3:
feedback.ratingPercentage = 60;
break;
case 4:
feedback.ratingPercentage = 80;
break;
case 5:
feedback.ratingPercentage = 100;
break;
}
})
for (let i = 0; i < feedbacks.length - 1; i++) {
percentage += feedbacks[i].ratingPercentage / feedbacks[i + 1].ratingPercentage;
}
percentage = percentage * 100;
}
calculatePercentage()
console.log(feedbacks)
如果我理解你的问题,你实际上想要计算(百分比)评分的平均值。您可以将所有百分比相加并除以数组的长度。可以单行完成,但我觉得最好显示扩展版本:
var average = 0;
for (let i = 0; i < feedbacks.length; i++) {
average += feedbacks[i].ratingPercentage;
}
average = average / feedbacks.length;
console.log(average);
我有一组包含不同键的对象,我们特别需要一个,
评分:1-5(这个值可以从最小 1 到最大 5)
我想计算所有对象的百分比
目前我的代码(它只给出 2 个数字的正确结果):
const feedbacks = [
{ rating: 1 },
{ rating: 3 },
{ rating: 4 },
{ rating: 2 },
{ rating: 5 }
];
function calculatePercentage() {
console.log(feedbacks);
let percentage = 0;
feedbacks.map(feedback => {
switch (feedback.rating) {
case 1:
feedback.ratingPercentage = 20;
break;
case 2:
feedback.ratingPercentage = 40;
break;
case 3:
feedback.ratingPercentage = 60;
break;
case 4:
feedback.ratingPercentage = 80;
break;
case 5:
feedback.ratingPercentage = 100;
break;
}
})
for (let i = 0; i < feedbacks.length - 1; i++) {
percentage += feedbacks[i].ratingPercentage / feedbacks[i + 1].ratingPercentage;
}
percentage = percentage * 100;
}
calculatePercentage()
console.log(feedbacks)
如果我理解你的问题,你实际上想要计算(百分比)评分的平均值。您可以将所有百分比相加并除以数组的长度。可以单行完成,但我觉得最好显示扩展版本:
var average = 0;
for (let i = 0; i < feedbacks.length; i++) {
average += feedbacks[i].ratingPercentage;
}
average = average / feedbacks.length;
console.log(average);