返回陣列中的前兩個元素 JavaScript
我們有一個 JavaScript 中數字陣列,其中包含無序數字。我們的任務是編寫一個函式,該函式接收此數字陣列,並返回一個包含陣列兩個元素的陣列,即陣列的前兩個元素(陣列中最大的兩個元素)。
我們必須一次性完成此操作,即我們需要線上性時間內執行此方法,例如僅使用一個 for 迴圈,或者如果我們使用 ES6 函式,則必須確保僅使用一次,並避免巢狀會增加時間複雜度的方法。
那麼,現在讓我們使用 Array.prototype.reduce() 方法編寫程式碼 -
示例
const arr = [23, 65, 67, 23, 2, 6, 87, 23, 45, 65, 3, 234, 3];
const topTwo = arr => {
if(arr.length < 2){
return false;
};
return arr.reduce((acc, val) => {
if(val > acc[0]){
let t = acc[0];
acc[0] = val;
acc[1] = t;
}else if(val > acc[1]){
acc[1] = val;
};
return acc;
}, [-Infinity, -Infinity]);
};
console.log(topTwo(arr));輸出
控制檯中的輸出將為 -
[ 234, 87 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式語言
C++
C#
MongoDB
MySQL
Javascript
PHP