Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การดึง n ตัวเลขที่น้อยที่สุดจากอาร์เรย์ในลำดับดั้งเดิมใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr และตัวเลข n

ฟังก์ชันของเราควรดึง n ที่เล็กที่สุดจากอาร์เรย์ arr โดยไม่รบกวนลำดับสัมพัทธ์ หมายความว่าไม่ควรจัดลำดับเพิ่มหรือลด แต่ควรคงลำดับเดิมไว้

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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]