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