我有這個簡單的問題,其中我將幾個數字的輸入傳遞給我的函數,並希望它輸出最小的數字。函數與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