Computer >> Máy Tính >  >> Lập trình >> Javascript

Bản ghi tổng hợp trong JavaScript

Giả sử, chúng ta có một mảng đối tượng chứa thông tin về một số giao dịch ngẫu nhiên do một số người thực hiện -

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
}];

Chúng tôi được yêu cầu viết một hàm nhận trong mảng này và tổng hợp và trả về số lượng giao dịch của những người duy nhất trong các đối tượng riêng biệt.

Do đó, hãy viết mã cho chức năng này -

Ví dụ

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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[
   { name: 'Rakesh', amount: 3600 },
   { name: 'Rajesh', amount: 3150 },
   { name: 'Ramesh', amount: 3750 },
   { name: 'Mukesh', amount: 2335 }
]