어떤 사람들이 수행한 임의의 트랜잭션에 대한 정보를 포함하는 객체 배열이 있다고 가정해 보겠습니다.
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 } ]