Math.min()函数返回第一个元素

时间:2017-08-04 21:00:52

标签: javascript function math

我有这个简单的问题,我将由多个数字组成的输入传递给我的函数,并希望它输出最小的数字。

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

为什么控制台输出5?

3 个答案:

答案 0 :(得分: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是一个保留的关键字/变量,它包含调用函数的所有参数。

答案 2 :(得分:1)

因为你的功能是一个参数输入