在Javascript中使用回调函数的数组平均值

我有一个问题要求求和找到数组的平均值.我一直保持平均为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);
上一篇:如何计算python中大矩阵(平均滤波器)的每个坐标的有效局部平均值


下一篇:MySQL:如何仅获得正值的平均值?