ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ตัวเลขเป็นอาร์กิวเมนต์แรก และตัวเลขเป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรเลือกและคืนค่าอาร์เรย์ของ n เลขคู่สุดท้ายที่มีอยู่ในอาร์เรย์อินพุต
ตัวอย่าง
โค้ดตัวอย่างด้านล่าง:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const num = 3;
const pickEvens = (arr = [], num = 1) => {
const res = [];
for (let index = arr.length - 1; index >= 0; index -= 1) {
if (res.length === num) {
break;
}
const number = arr[index];
if (number % 2 === 0) {
res.unshift(number);
}
}
return res;
};
console.log(pickEvens(arr, num));
ผลลัพธ์
[4, 6, 8]
คำอธิบายเพิ่มเติม
จากท้ายมาหน้า หาเลขคู่ 3 ตัว: 8, 6, 4 → unshift ทำให้เป็น [4,6,8] (เรียงตามลำดับเดิม) โค้ด break ทันทีที่ครบ num ตัว ประหยัดเวลา