从数组计算平均值 - 如果为空则如何返回null

时间:2018-01-20 02:48:22

标签: javascript

我是javascript的新手,我正在进行一项任务,创建一个使用数组中的数字计算平均值的函数。如果数组为[],则应返回null

到目前为止,我有以下代码,但它不断返回NaN而不是null,有人可以向我解释一下吗?提前谢谢。

function mean(arr) {
  if (arr == []) {
    return null;
  } else {
    var sum = 0;
    var average = 0;
    for (var i = 0; i < arr.length; i++) {
      sum += arr[i];
    }
    return round(sum / arr.length);
  }
}



console.log(mean([6,2,3,3,110,6,1,0,5])); //returns 4
console.log(mean([])); //currently returning NaN, instead of null

3 个答案:

答案 0 :(得分:0)

使用arr.length ===0

检查数组的长度

function mean(arr) {
  if (arr.length === 0) {
    return null;
  } else {
    var sum = 0;
    var average = 0;
    for (var i = 0; i < arr.length; i++) {
      sum += arr[i];
    }
    return round(sum / arr.length);
  }
}




console.log(mean([]));

答案 1 :(得分:0)

你走了。只需将arr == []更改为arr.length == 0

    function mean(arr) {
    if (arr.length == 0) {
        return null;
    } else {
        var sum = 0;
        var average = 0;
        for (var i = 0; i < arr.length; i++) {
          sum += arr[i];
        }
        return Math.round(sum / arr.length);
        }
    }

    console.log(mean([6,2,3,3,110,6,1,0,5])); //returns 4
    console.log(mean([])); //currently returning NaN, instead of null

答案 2 :(得分:0)

添加了附加条件以检查变量是否不是数组以避免运行时异常。

function mean(arr) {
If (arr.constructor != Array) return null;
if (arr.length == 0) {
    return null;
} else {
    var sum = 0;
    var average = 0;
    for (var i = 0; i < arr.length; i++) {
      sum += arr[i];
    }
    return Math.round(sum / arr.length);
    }
}