2017-08-04 23 views
2

我有这个简单的问题,其中我将几个数字的输入传递给我的函数,并希望它输出最小的数字。函数与Math.min()返回第一个元素

question7 = function(input){ 
    minimum = Math.min(input); 
    console.log(minimum); 
} 
question7(5,-2,0,1); 

为什么控制台输出5?

+1

'输入'不是所有提供的参数,只有第一个。 – MinusFour

+1

[函数]的一些基础知识(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions)很好理解... – Teemu

回答

3

在你的代码中,你只传递了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

1

因为你的函数取一个参数输入

3

你只有经过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是一个保留的关键字/变量,它保存了函数被调用的所有参数。

相关问题