เราต้องเขียนฟังก์ชันที่รับจำนวนเต็มบวก n และคืนค่าอาร์เรย์ของ n ปีอธิกสุรทินถัดไป เราจะแบ่งปัญหานี้เป็นสามส่วน:
Part 1: หาปีปัจจุบันผ่าน JS
โค้ดหาปีปัจจุบันผ่าน JS:
// ได้ปีปัจจุบันจาก instance ใหม่ของ Date object const year = new Date().getFullYear();
Part 2: ตรวจสอบปีอธิกสุรทิน
เราจะเขียนฟังก์ชัน isLeap() ที่รับตัวเลขและคืน boolean ว่าเป็นปีอธิกสุรทินหรือไม่
ปีถือเป็นปีอธิกสุรทินถ้าตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อ:
- เป็นพหุคูณของ 400
- เป็นพหุคูณของ 4 และไม่ใช่พหุคูณของ 100
เก็บสิ่งเหล่านี้ไว้ มาเขียนฟังก์ชัน isLeap():
// ฟังก์ชันตรวจสอบปีอธิกสุรทิน
const isLeap = year => {
return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
};
Part 3: หาปีอธิกสุรทินถัดไป n ปี
ตัวอย่างโค้ด
// ฟังก์ชันตรวจสอบปีอธิกสุรทิน
const isLeap = year => {
return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
};
const nextNLeap = n => {
const arr = [];
let year = new Date().getFullYear() + 1;
while (arr.length < n) {
if (isLeap(year++)) {
arr.push(year - 1);
}
}
return arr;
};
console.log(nextNLeap(5));
console.log(nextNLeap(25));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
[2024, 2028, 2032, 2036, 2040] [2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2104, 2108, 2112, 2116, 2120, 2124]