我有这个简单的问题,其中我将几个数字的输入传递给我的函数,并希望它输出最小的数字。函数与Math.min()返回第一个元素
question7 = function(input){
minimum = Math.min(input);
console.log(minimum);
}
question7(5,-2,0,1);
为什么控制台输出5?
我有这个简单的问题,其中我将几个数字的输入传递给我的函数,并希望它输出最小的数字。函数与Math.min()返回第一个元素
question7 = function(input){
minimum = Math.min(input);
console.log(minimum);
}
question7(5,-2,0,1);
为什么控制台输出5?
在你的代码中,你只传递了5
,因为你的函数只接受一个参数。试试这个:
question7 = function(input) {
var minimum = Math.min(...input);
console.log(minimum);
}
question7([5, -2, 0, 1]);
在这里,我通过数字数组,然后在var minimum = Math.min(...input);
排我前面的参数已经使用了传播语法...
。
有关...
更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator
因为你的函数取一个参数输入
你只有经过5
到Math.min,因为这是我们在调用question7
函数的第一个参数。你想通过所有的arguments
或参数Math.min
在这种情况下,你可以利用apply
。
var question7 = function() {
var minimum = Math.min.apply(Math, arguments);
console.log(minimum)
}
question7(5,-2,0,1);
apply
以一个数组状物体对其进行扩展为三个独立的参数,并将其应用于this
的说法,在这种情况下Math
所以在这个例子中,它把你叫一切question7
并将其应用于Math.min
函数。
在Javascript中arguments
是一个保留的关键字/变量,它保存了函数被调用的所有参数。
'输入'不是所有提供的参数,只有第一个。 – MinusFour
[函数]的一些基础知识(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions)很好理解... – Teemu