在 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]