हमें एक रिकर्सिव फ़ंक्शन लिखना आवश्यक है, मान लीजिए pushRecursively(), जो नंबर्स का एक ऐरे लेता है और एक ऑब्जेक्ट लौटाता है जिसमें odd और even प्रॉपर्टीज हैं जहां odd इनपुट ऐरे से विषम संख्याओं का ऐरे है और even इनपुट ऐरे से सम संख्याओं का ऐरे है। यह रिकर्सन का उपयोग करके किया जाना चाहिए और किसी भी प्रकार के लूप मेथड का उपयोग नहीं किया जाना चाहिए।
उदाहरण
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 वेरिएबल ऐरे के अंत तक पहुंचता है, हम फ़ंक्शन को रिकर्सिवली कॉल करते रहते हैं, हर बार विषम मानों को odd ऐरे में और सम को even ऐरे में पुश करते हैं और एक बार len वेरिएबल ऐरे की लंबाई के बराबर हो जाता है, हम ऑब्जेक्ट को लौटाकर फ़ंक्शन से बाहर निकलते हैं।
आउटपुट
कंसोल में इस कोड का आउटपुट होगा:
{ odd: [ 4365, 43, 5, 31 ], even: [ 12, 76, 76, 98, 4 ] }