在 JavaScript 中聚合记录
假设我们有一个对象数组,其中包含一些人进行的随机交易信息 −
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 }
]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP