Math.max()没有按预期工作

时间:2016-12-19 05:09:42

标签: javascript

我有以下功能,其中Math.max()未按预期工作。它始终警告正在传递的参数的第一个值。错误在哪里?



function large(arr) {
   alert(Math.max(arr))
}

large(1,2,3,4,5);




2 个答案:

答案 0 :(得分:7)

您正在传递多个参数,但您的函数仅使用第一个参数。

在ES5及之前,您可以使用函数的apply方法和arguments object

function large() { 
   alert(Math.max.apply(Math, arguments)) 
} 

large(1,2,3,4,5);

在ES6中,您可以使用restspread operator

function large(...arr) { 
   alert(Math.max(...arr)) 
} 

large(1,2,3,4,5);

答案 1 :(得分:1)

你可以这样做。

如果您想使用arguments,可以避免使用该功能的参数。然后使用apply功能调用Math.max

function large() {
var _max = Math.max.apply(Math, arguments);
alert(_max)
};
large(1, 2, 3, 4, 5, 20,9000);

DEMO