我有一个问题要求求和找到数组的平均值.我一直保持平均为0.
我真的不知道问题可能是什么:
var a = [10,20,30,40]
var sum = 0
var avg = 0
function sumUP(a) {
for (var i=0; i<a.length; i++){
sum += a[i];
avg = (sum/a.length);
}
}
function display(avg, callback) {
document.write("Average of array is " + avg)
callback(average);
}
display(avg, sumUP);
非常感谢!
解决方法:
您应该让sumUP返回计算的平均值,而不是分配给全局变量,以便在document.write中使用它.这是函数的目的之一 – 封装功能并返回可由其他函数使用的值,而不会产生不必要的副作用.您还需要在显示之前计算平均值. (你在计算它之前显示它,当然它显示0)
您还应该注意不要使用单字母变量名称,这些名称很难理解(不仅是其他人读取您的代码,而且对于您来说,当您稍后再回来时).
const array = [10, 20, 30, 40];
function sumUP(arr) {
let sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
}
const avg = (sum / arr.length);
return avg;
}
function display(arr, callback) {
const avg = callback(arr);
document.write("Average of array is " + avg)
}
display(array, sumUP);