我有以下功能,其中Math.max()
未按预期工作。它总是警告正在传递的参数的第一个值。错误在哪里?Math.max()未按预期工作
function large(arr) {
alert(Math.max(arr))
}
large(1,2,3,4,5);
我有以下功能,其中Math.max()
未按预期工作。它总是警告正在传递的参数的第一个值。错误在哪里?Math.max()未按预期工作
function large(arr) {
alert(Math.max(arr))
}
large(1,2,3,4,5);
您传递多个参数,但你的函数只使用第一个。
在ES5之前,你可以使用函数的apply
方法和arguments
object:
function large() {
alert(Math.max.apply(Math, arguments))
}
large(1,2,3,4,5);
在ES6可以使用rest和spread operator:
function large(...arr) {
alert(Math.max(...arr))
}
large(1,2,3,4,5);
难道你看看[文件](https://developer.mozilla.org/en-US/docs/Web/JavaScript/参考/ Global_Objects /数学/最大)? –
max不接受数组作为输入。所以Math.max(ArrayList)将返回NaN – Mahi
你没有传递数组;你传递了五个独立的参数,并给第一个参数赋予名字“arr”。其他参数值只能通过'arguments'关键字访问。 –