我如何找到数组的平均值

时间:2019-02-02 01:30:50

标签: javascript for-loop math

我正在尝试创建一个函数,该函数将返回分数的平均值,但是陷入了for循环过程之间,如果有人可以帮助我了解我所缺少的内容,那么它将很有帮助

function getAverageTestScore(scores) {
  for(var i = 0; i < scores.length; i++){
   return scores[i]
  }
}

const avg = getAverageTestScore([80, 100]);
console.log(avg, '<-- should be 90');

2 个答案:

答案 0 :(得分:0)

递增值为scores[i]的变量将返回该变量除以scores.length。不要从return循环中for

function getAverageTestScore(scores) {
  let n = 0;
  for(var i = 0; i < scores.length; i++){
   n += scores[i];
  }
  return n / scores.length
}

const avg = getAverageTestScore([80, 100]);
console.log(avg, '<-- should be 90');

答案 1 :(得分:0)

一种流行的推荐方法是使用reduce方法,例如下面的示例

const scores = [10, 20, 30, 50, 10];
const average = scores.reduce((accumulator, currentValue, index, array) => {
  accumulator += currentValue;

  if (index === array.length - 1) {
      return accumulator / array.length;
  }

  return accumulator;
}, 0);

console.log(average);

在转到MDN之前,作者以实用的方式分享了其他一些使用reduce有意义的常见情况。

基本上,经验法则可能是:当需要将数组转换为紧凑或摘要版本时,使用reduce可能是一种实现方法