为什么我的函数在尝试从数组中返回最大数时返回undefined?

时间:2016-05-26 15:29:29

标签: javascript arrays max

我的函数返回undefined而不是3,我知道我可以使用: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max

但是,我想首先尝试看看我是否可以在不使用本机功能的情况下这样做,因为我正在努力提高我作为开发人员的技能。

var my_max = function(arr){
var max=arr[0];
for (var i = 0; i < arr.length; i++){
    if (arr[i] > max) {
        max=arr[i];
    }
}
return max;
};

console.log(my_max(1, 2, 3));

1 个答案:

答案 0 :(得分:5)

那里没有阵列。你只是将三个数字传递给函数。您应该传递一个包含三个数字的数组:

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

或者,您可以在函数中使用rest参数,例如:

var my_max = function(...arr){
  // ...
}

然后你可以在不使用数组的情况下调用它:

console.log(my_max(1, 2, 3));