我沒有得到最小值,它顯示為 0,但在 Math.max() 的情況下它顯示正確的最大值,為什么會這樣?
var min_val = 0;
for(var i = 0; i < ar.length; i ) {
min_val = Math.min(min_val,ar[i]);
}
document.write(min_val);
}
values([14,99, 10, 18,19, 11, 34]);```
uj5u.com熱心網友回復:
它總是回傳 0,因為您將它與 min_val 進行比較。其中 min_val 成為最低值,因為 0 低于陣列中的任何值。因此 min_val 將始終設定為等于自身并保持為 0。這是我的解決方法:
let ar =[14,99,10,18,19,11,34]
let min_val = Math.min(...ar)
console.log(min_val)
這也比 for 回圈更優雅。
uj5u.com熱心網友回復:
對于您的預期行為,為了找到最小值,您希望從絕對最大值(無窮大)開始。
var min_val = Infinity;
for(var i = 0; i < ar.length; i ) {
min_val = Math.min(min_val,ar[i]);
}
document.write(min_val);
}
values([14,99, 10, 18,19, 11, 34]);```
這將為Infinity空陣列或輸入的最小值寫入。
uj5u.com熱心網友回復:
Math.min()接收像Math.min(-2, -3, -1)或與陣列一樣的引數Math.min(...arr)。您正在給出這些引數Math.min([14,99, 10, 18,19, 11, 34], 0),其中 0 是最小值。所以你收到 0。另外,不需要回圈來Math.min() 找到最小值。所以,解決方案是:
function values(ar) {
var min_val = Math.min(...ar);
//document.write(min_val);
return min_val
}
console.log(values([14,99, 10, 18,19, 11, 34]))
或(以匹配您的情況)
function values(ar) {
var min_val = Math.min(...ar);
document.write(min_val);
}
以最短的形式:
document.write(Math.min(...ar));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/334116.html
標籤:javascript 数组
上一篇:LeetCode 刷題小本本Day1 Two Sum
下一篇:使用另一個陣列更新物件陣列
