Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การคืนอาร์เรย์ที่มี n เลขคู่สุดท้ายจากอาร์เรย์อินพุตใน JavaScript

ปัญหา

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