समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो एक नेस्टेड सरणी 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