ধরা যাক, আমাদের এমন একটি ফাংশন লিখতে হবে যা একটি অ্যারে নেয় এবং আরেকটি অ্যারে ফেরত দেয় যেখানে পরপর অনুরূপ সংখ্যাগুলি একসাথে যোগ করা হয়।
যেমন −
const array = [1, 5, 5, 5, 8, 8, 9, 1, 4, 4, 2];
আউটপুট −
হওয়া উচিত[1, 15, 16, 9, 1, 8, 2]
সমস্ত পরপর 5s যোগ করা হয়েছে 15 পর্যন্ত, তারপর 2 টানা 8s যোগ করা হয়েছে 16 পর্যন্ত একইভাবে 4s যোগ করা হয়েছে 8 পর্যন্ত।
অতএব, এই ফাংশনের জন্য কোড লিখি। আমরা এখানে Array.prototype.reduce() পদ্ধতি ব্যবহার করব মূল অ্যারে কমাতে এবং একই সাথে একটি নতুন তৈরি করতে।
উদাহরণ
const array = [1, 5, 5, 5, 8, 8, 9, 1, 4, 4, 2];
const sumConsecutive = (array) => {
return array.reduce((acc, val) => {
if (acc.last === val) {
acc.arr[acc.arr.length - 1] += val;
} else {
acc.arr.push(val);
acc.last = val;
}
return acc;
}, { arr: [], last: undefined }).arr;
};
console.log(sumConsecutive(array)); আউটপুট
কনসোলে আউটপুট হবে −
[ 1, 15, 16, 9, 1, 8, 2 ]