Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

รวมระเบียนใน 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 }
]