Как рассчитать процент от числа N? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть массив объектов, который состоит из разных ключей, и один из них нам нужен,

оценка: 1-5 (Это значение может go от 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)

1 Ответ

0 голосов
/ 03 апреля 2020

Если я понял ваш вопрос, вы на самом деле хотите рассчитать среднее значение (в процентах) оценок. Вы можете просто сложить все проценты и разделить на длину массива. Это можно сделать в одну строку, но я чувствую, что лучше показать расширенную версию:

var average = 0;
for (let i = 0; i < feedbacks.length; i++) {
    average += feedbacks[i].ratingPercentage;
}
average = average / feedbacks.length;
console.log(average);
...