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)
来获得平均值,而不需要在最后进行除法。