How do I get average of one array and compare it with a value

Burdetiu Samuel :

So I want to return true if myScore is higher than classScore average but it keeps returning false. This is what I came up with.

function compareScore(classScore, myScore) {

  var classAverage = 0;

  for(var i = 0; i < classScore.length; i++){
    classAverage = (classAverage / classScore.length) + classScore[i];
  };

  if(myScore > classScore){
    return true;
  } else {
    return false;
  }
}

console.log(compareScore([20,20,20],70))
Maheer Ali :

You need to compare classAverage not the array classScore. And also the correct way to calculate average is get sum of array and then divide it by length of array.

In below case you don't need to use if else just simply return the result of logical operation.

function compareScore(classScore, myScore) {
  let classSum = 0;

  for(var i = 0; i < classScore.length; i++){
    classSum += classScore[i];
  };
  let classAverage = classSum/classScore.length
  return myScore > classAverage;
}

console.log(compareScore([20,20,20],70))

Another way of doing that is to use reduce()

const compareScore = (classScore, myScore) => classScore.reduce((ac, a) => ac + a, 0)/classScore.length < myScore

console.log(compareScore([20,20,20],70))

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=31696&siteId=1