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

Recursion ในอาร์เรย์หาตัวเลขคี่คู่ แล้ว push เข้าตัวแปรใหม่ JavaScript

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