從 JavaScript 陣列中按原始順序檢索 n 個最小數字


問題

我們需要編寫一個 JavaScript 函式,它接收一個數字 arr 和一個數字 n。

我們的函式應從陣列 arr 中檢索 n 個最小元素,而不破壞它們的相對順序。這意味著它們不應按遞增或遞減順序排列,而應保留其原始順序。

示例

以下是程式碼 −

 即時演示

const arr = [6, 3, 4, 1, 2];
const num = 3;
const smallestInOrder = (arr = [], num) => {
   if(arr.length < num){
      return arr;
   };
   const copy = arr.slice();
   copy.sort((a, b) => a - b);
   const required = copy.splice(0, num);
   required.sort((a, b) => {
      return arr.indexOf(a) - arr.indexOf(b);
   });
   return required;
};
console.log(smallestInOrder(arr, num));

輸出

以下是控制檯輸出 −

[3, 1, 2]

更新於: 19-04-2021

343 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告