অ্যারেতে উপাদানগুলোর জোড়া বানিয়ে গুণ করুন এবং সব গুণফলের যোগফল বের করুন।
উদাহরণ
[1, 2, 3, 4, 5, 6, 7] (1×2) + (3×4) + (5×6) + (7×1) // শেষে একক থাকলে ১ দিয়ে গুণ = 2 + 12 + 30 + 7 = 51
সমাধান
const alternateOperation = (arr) => {
let sum = 0;
for (let i = 0; i < arr.length; i += 2) {
const first = arr[i];
const second = arr[i + 1] || 1; // শেষে একক থাকলে ১
sum += first * second;
}
return sum;
};
// Reduce + Filter
const alternateOperationFP = (arr) => {
return arr
.filter((_, i) => i % 2 === 0)
.reduce((sum, val, idx) => {
const pairVal = arr[idx * 2 + 1] || 1;
return sum + val * pairVal;
}, 0);
};
// Map-Reduce চেইন
const alternateOperationChain = (arr) =>
arr
.filter((_, i) => i % 2 === 0)
.map((val, idx) => val * (arr[idx * 2 + 1] || 1))
.reduce((a, b) => a + b, 0);
// টেস্ট
console.log(alternateOperation([1, 2, 3, 4, 5, 6, 7])); // 51
console.log(alternateOperation([1, 2, 4, 1, 2, 3, 4, 3])); // 24
ব্যাখ্যা
- i += 2: জোড় ইন্ডেক্সে লাফ দিয়ে যাওয়া
- || 1: অড দৈর্ঘ্যে শেষ উপাদান ১ দিয়ে গুণ
- যুগল ইন্ডেক্স: idx*2+1
উৎপাদন
51