ปัญหา
เราต้องเขียนฟังก์ชัน 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]