2 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
你應(yīng)該返回一個(gè)數(shù)字,而不是一個(gè)布爾值。所以第一個(gè)是正確的。后者可能會(huì)在某些 javascript 引擎上偶然工作,但不能保證。

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
sort
String
默認(rèn)情況下對(duì)數(shù)組進(jìn)行排序。如果你傳遞一個(gè)比較器,那么它是一個(gè)function
取決于兩個(gè)參數(shù)和return
:
負(fù)數(shù),如果第一個(gè)參數(shù)小于第二個(gè)
0 如果它們相等
正,如果第一個(gè)參數(shù)大于第二個(gè)
使用邏輯運(yùn)算符代替上述運(yùn)算符是錯(cuò)誤的。
但是,如果您有興趣找到第二大數(shù)字,那么最好使用循環(huán)來完成:
var largestNumbers = [];
var firstIndex = (arr[0] < arr[1]) ? 1 : 0;
largestNumbers.push(arr[firstIndex]);
largestNumbers.push(arr[1 - firstIndex]);
for (var i = 2; i < arr.length; i++) {
if (largestNumbers[1] < arr[i]) {
if (largestNumbers[0] < arr[i]) {
largestNumbers[1] = largestNumbers[0];
largestNumbers[0] = arr[i];
}
}
}
這比對(duì)數(shù)組排序更快,更重要的是,它不會(huì)為了找到第二大數(shù)字而破壞您的初始順序。
添加回答
舉報(bào)