从 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 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告