เราต้องเขียนฟังก์ชัน recursive pushRecursively() รับอาร์เรย์ตัวเลข คืนอ็อบเจกต์มีคุณสมบัติ odd และ even โดย odd เป็นอาร์เรย์ตัวเลขคี่จากอินพุท even เป็นอาร์เรย์ตัวเลขคู่ ต้องทำด้วย recursion ห้ามใช้ลูปทุกชนิด
ตัวอย่าง
const arr = [12,4365,76,43,76,98,5,31,4];
const pushRecursively = (arr, len = 0, odd = [], even = []) => {
if(len < arr.length){
arr[len] % 2 === 0 ? even.push(arr[len]) : odd.push(arr[len]);
return pushRecursively(arr, ++len, odd, even);
};
return {
odd,
even
}
};
console.log(pushRecursively(arr));
ขณะที่ตัวแปร len ยังไม่ถึงท้ายอาร์เรย์ เราเรียกฟังก์ชันซ้ำ ทุกครั้ง push ค่าคี่เข้า odd array และค่าคู่เข้า even array และเมื่อ len เท่ากับความยาวอาร์เรย์ ออกจากฟังก์ชันคืนอ็อบเจกต์
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น
{ odd: [ 4365, 43, 5, 31 ], even: [ 12, 76, 76, 98, 4 ] }