Computer >> Máy Tính >  >> Lập trình >> Javascript

Lấy n số nhỏ nhất từ ​​một mảng theo thứ tự ban đầu của chúng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng các số arr và một số n.

Hàm của chúng ta sẽ lấy n nhỏ nhất từ ​​mảng arr mà không làm xáo trộn thứ tự tương đối của chúng. Nó có nghĩa là chúng không nên được sắp xếp theo thứ tự tăng hoặc giảm mà chúng nên giữ thứ tự ban đầu của chúng.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[3, 1, 2]