সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি নেস্টেড অ্যারে (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