समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो नेस्टेड सरणी में ले जाता है, arr (किसी भी स्तर तक घोंसला) एकमात्र तर्क के रूप में।
फ़ंक्शन को नेस्टेड सरणी के भारित योग की गणना करनी चाहिए और उस राशि को वापस करना चाहिए।
नेस्टेड योग की गणना के लिए, हम एक विशिष्ट तत्व को उसके घोंसले के स्तर से गुणा करते हैं और पूरे सरणी में जोड़ते हैं।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [4, 7, [6, 1, [5, 2]]];
तब आउटपुट होना चाहिए -
const output = 46;
आउटपुट स्पष्टीकरण:
योग की गणना इस तरह की जाएगी -
(4 * 1) + ( 7 * 1) + (6 * 2) + (1 * 2) + (5 * 3) + (2 * 3) = 46
उदाहरण
इसके लिए कोड होगा -
const arr = [4, 7, [6, 1, [5, 2]]]; const findWeightedSum = (arr = [], level = 1, res = 0) => { for(let i = 0; i < arr.length; i++){ if(typeof arr[i] === 'number'){ res += (level * arr[i]); }else if(Array.isArray(arr[i])){ return findWeightedSum(arr[i], level + 1, res); }; }; return res; }; console.log(findWeightedSum(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
46