首页 > 解决方案 > 结合 IF 语句和数组平均函数

问题描述

我正在尝试获取数组的平均值。如果数组的参数为空,我希望函数返回 null。

我尝试了以下方法,但似乎不起作用:

function average() {
    if ((average = [1, 2, 3])) {
        var i = 0,
        sum = 0,
        len = array.length;
                    
        while (i < len) {
            sum = sum + array[i++];
        }

        return sum / len;
    } else {
        return null;
    }
}

average();
console.log(average());

如前所述,我想average([])返回 null,例如average([1, 2, 3, 4])返回 2.5。

在我开始尝试 if 之前,它运行良好,但没有解决我的问题:

function average() {
    array = [1, 2, 3];
    var i = 0,
    sum = 0,
    len = array.length;

    while (i < len) {
        sum = sum + array[i++];
    }
    
    return sum / len;
}

标签: javascriptarraysfunctionaverage

解决方案


检查数组的长度。

function average(array) {
  if (array.length > 0) {
    var i = 0,
      sum = 0,
      len = array.length;
    while (i < len) {
      sum = sum + array[i++];
    }
    return sum / len;
  } else {
    return null;
  }
}

console.log(average([1, 2, 3, 4]));
console.log(average([]));

您不应该array在函数中分配,这将覆盖参数。


推荐阅读