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