मान लीजिए, हमें एक रिकर्सिव फ़ंक्शन लिखना है जो संख्याओं के सरणी के सभी तत्वों को जोड़ता है लेकिन मोड़ और मोड़ के साथ यह है कि हम जो रिकर्सिव फ़ंक्शन लिखते हैं वह किसी भी अतिरिक्त चर (मेमोरी) को प्रारंभ नहीं कर सकता है।
जैसे हम योग को संग्रहीत करने के लिए या सरणी के सूचकांक की गिनती रखने के लिए एक चर का उपयोग नहीं कर सकते हैं, यह सब हमारे पास पहले से मौजूद चीज़ों का उपयोग करना होगा।
ये रहा समाधान -
हमारे पास पहले से ही एक सरणी है और इसके पहले तत्व का उपयोग कर सकते हैं (यानी, पुनरावर्ती योग रखने के लिए शून्य सूचकांक पर तत्व)।
दृष्टिकोण यह है कि हम बार-बार सरणी से एक तत्व को पॉप करते हैं और इसे सरणी के पहले तत्व में तब तक जोड़ते हैं जब तक कि हमारे पास केवल एक तत्व न रह जाए।
जब हमारे पास केवल एक तत्व रह जाता है, तो यह सरणी का संचयी योग होगा और हम उसे वापस कर देंगे। इस दृष्टिकोण के लिए कोड होगा -
उदाहरण
const recursiveSum = arr => { if(arr.length > 1){ arr[0] += arr.pop(); return recursiveSum(arr); }; return arr[0]; }; console.log(recursiveSum([1,2,3,4])); console.log(recursiveSum([1,2,3,4,3,6,3,32,7,9,5])); console.log(recursiveSum([]));
आउटपुट
कंसोल में आउटपुट होगा -
10 75 undefined