สมมติว่าเรามีอาร์เรย์ของวัตถุที่มีข้อมูลเกี่ยวกับธุรกรรมสุ่มที่ดำเนินการโดยบางคน -
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 } ]