您好,我想通過 ORDER 查找陣列中最大的三個數字。我很困惑我應該如何實作最后一個邏輯,我必須根據結果陣列中的當前數字是大于還是小于陣列項的回圈來移動結果陣列的索引。
function findThreeLargestNumbers(array) {
let result = [null, null, null];
for (let i = 0; i < array.length; i ) {
if (!result[2] || result[i] > result[2]) {
for (let j = 0; i <= 2; i ) {
if (j === 2) {
result[j] = array[i]
} else {
result[j] = array[i 1]
}
}
}
}
return result
}
console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));
uj5u.com熱心網友回復:
您可以簡單地sort按升序排列并用于slice獲取最后一個3元素:
1)當您希望結果按升序排列在最后 3 個最大時[18, 141, 541]
function findThreeLargestNumbers(array) {
return [...array].sort((a, b) => a - b).slice(-3);
}
// [18, 141, 541]
console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));
2)當您希望結果按降序排列在最后 3 個最大時[541, 141, 18]
function findThreeLargestNumbers(array) {
return [...array].sort((a, b) => b - a).slice(0, 3);
}
console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365908.html
標籤:javascript 算法
