Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得一个数组的平均值并将其与一个值进行比较_Javascript_Arrays_Function - Fatal编程技术网

Javascript 如何获得一个数组的平均值并将其与一个值进行比较

Javascript 如何获得一个数组的平均值并将其与一个值进行比较,javascript,arrays,function,Javascript,Arrays,Function,因此,如果myScore高于classScore平均值,我想返回true,但它一直返回false。 这就是我想到的 function compareScore(classScore, myScore) { var classAverage = 0; for(var i = 0; i < classScore.length; i++){ classAverage = (classAverage / classScore.length) + classScore[i];

因此,如果
myScore
高于
classScore
平均值,我想返回true,但它一直返回false。 这就是我想到的

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))
函数比较核心(classScore,myScore){
var classAverage=0;
对于(变量i=0;iclassScore){
返回true;
}否则{
返回false;
}
}
控制台日志(比较核心([20,20,20],70))

您需要比较
classAverage
而不是数组
classScore
。计算平均值的正确方法是得到数组的和,然后除以数组的长度

在下面的情况下,您不需要使用
if
else
只需
返回逻辑运算的结果即可

函数比较核心(classScore,myScore){
设classSum=0;
对于(变量i=0;iclassAverage;
}

log(compareScore([20,20,20],70))
您可以使用Array.reduce()来获取和并从中开始

function compareScore(classScore, myScore) {
      var sum = classScore.reduce((previous, current) => current += previous);
      var average = sum / classScore.length;

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

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

请看两件事:复合赋值
+=
是不必要的,因为函数的返回值是所使用的,而不是当前的
,因此
+
就足够了。其次,您需要指定
initial
0
,以便空数组不会引发异常。当然,这两点在现有的答案中都已经提到了,所以你的答案没有任何帮助。请快速注意使用reduce的示例,你可以使用
classScore.reduce((ac,a,i,arr)=>ac+(a/arr.length),0)
来获得平均值,而不需要在最后进行除法。