【问题标题】:Combining IF statement with array average function结合 IF 语句和数组平均函数
【发布时间】:2020-10-12 22:41:22
【问题描述】:

我正在尝试获取数组的平均值。如果数组的参数为空,我希望函数返回 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;
}

【问题讨论】:

标签: javascript arrays function average


【解决方案1】:

检查数组的长度。

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,这会覆盖参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    相关资源
    最近更新 更多