मान लीजिए हमारे पास ऑब्जेक्ट की एक सरणी है जिसमें कुछ लोगों द्वारा किए गए यादृच्छिक लेनदेन के बारे में जानकारी है:
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 }
]