Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การเรียกซ้ำในอาร์เรย์เพื่อค้นหาตัวเลขคี่และผลักไปที่ตัวแปรใหม่ JavaScript


เราจำเป็นต้องเขียนฟังก์ชันแบบเรียกซ้ำ เช่น pushRecursively() ซึ่งรับอาร์เรย์ของตัวเลขและส่งคืนอ็อบเจ็กต์ที่มีคุณสมบัติคี่และคู่ โดยที่คี่คืออาร์เรย์ของตัวเลขคี่จากอาร์เรย์อินพุตและแม้แต่อาร์เรย์ของตัวเลขคู่จากอาร์เรย์อินพุต สิ่งนี้จะต้องแก้ไขโดยใช้การเรียกซ้ำและไม่ควรใช้วิธีการวนซ้ำแบบใด

ตัวอย่าง

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 ถึงจุดสิ้นสุดของอาร์เรย์ เรายังคงเรียกใช้ฟังก์ชันซ้ำ ๆ กัน ทุกครั้งที่ผลักค่าคี่ไปยังอาร์เรย์คี่ และค่าคู่ถึงอาร์เรย์คู่ และเมื่อตัวแปร len เท่ากับความยาวของอาร์เรย์ เราจะออกจากฟังก์ชันโดยส่งคืนอ็อบเจ็กต์ .

ผลลัพธ์

ผลลัพธ์ของรหัสนี้ในคอนโซลจะเป็น −

{ odd: [ 4365, 43, 5, 31 ], even: [ 12, 76, 76, 98, 4 ] }