সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি নেস্টেড অ্যারে, অ্যাআর (যেকোনো লেভেল পর্যন্ত নেস্ট করা) একমাত্র আর্গুমেন্ট হিসেবে নেয়।
ফাংশনটি নেস্টেড অ্যারের ওজনযুক্ত যোগফল গণনা করবে এবং সেই যোগফলটি ফেরত দেবে।
নেস্টেড যোগফল গণনা করার জন্য, আমরা একটি নির্দিষ্ট উপাদানকে এর নেস্টিং স্তরের সাথে গুণ করি এবং অ্যারে জুড়ে যোগ করি।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
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