ধরা যাক, আমাদের কাছে বস্তুর একটি অ্যারে আছে যেটিতে কিছু লোকের দ্বারা সম্পাদিত কিছু এলোমেলো লেনদেনের তথ্য রয়েছে -
const transactions = [{
name: 'Rakesh',
amount: 1500
}, {
name: 'Rajesh',
amount: 1200
}, {
name: 'Ramesh',
amount: 1750
}, {
name: 'Rakesh',
amount: 2100
}, {
name: 'Mukesh',
amount: 1100
}, {
name: 'Rajesh',
amount: 1950
}, {
name: 'Mukesh',
amount: 1235
}, {
name: 'Ramesh',
amount: 2000
}]; আমাদের এমন একটি ফাংশন লিখতে হবে যা এই অ্যারেতে নেয় এবং স্বতন্ত্র বস্তুতে অনন্য ব্যক্তিদের লেনদেনের পরিমাণ একত্রিত করে এবং ফেরত দেয়।
অতএব, আসুন এই ফাংশনের জন্য কোড লিখি -
উদাহরণ
const transactions = [{
name: 'Rakesh',
amount: 1500
}, {
name: 'Rajesh',
amount: 1200
}, {
name: 'Ramesh',
amount: 1750
}, {
name: 'Rakesh',
amount: 2100
}, {
name: 'Mukesh',
amount: 1100
}, {
name: 'Rajesh',
amount: 1950
}, {
name: 'Mukesh',
amount: 1235
}, {
name: 'Ramesh',
amount: 2000
}];
const aggregateArray = arr => {
return arr.reduce((acc, val) => {
const index = acc.findIndex(obj => obj.name === val.name);
if(index !== -1){
acc[index].amount += val.amount;
}else{
acc.push({
name: val.name,
amount: val.amount
});
};
return acc;
}, []);
};
console.log(aggregateArray(transactions)); আউটপুট
কনসোলে আউটপুট হবে −
[
{ name: 'Rakesh', amount: 3600 },
{ name: 'Rajesh', amount: 3150 },
{ name: 'Ramesh', amount: 3750 },
{ name: 'Mukesh', amount: 2335 }
]