2017-08-04 128 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是一個保留的關鍵字/變量,它保存了函數被調用的所有參數。

相關問題