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]