วิธีมีประสิทธิภาพที่สุด group by key บน array of objects ใน JS คือใช้ reduce function
reduce() method execute reducer function (ที่คุณให้) บนแต่ละ element ของ array ได้ single output value
ตัวอย่าง
const people = [ { name: 'Lee', age: 21 }, { name: 'Ajay', age: 20 }, { name: 'Jane', age: 20 } ]; function groupBy(objectArray, property) { return objectArray.reduce((acc, obj) => { const key = obj[property]; if (!acc[key]) { acc[key] = []; } // Add object to list for given key's value acc[key].push(obj); return acc; }, {}); } const groupedPeople = groupBy(people, 'age'); console.log(groupedPeople);ผลลัพธ์
{ 20: [ { name: 'Ajay', age: 20 }, { name: 'Jane', age: 20 } ], 21: [ { name: 'Lee', age: 21 } ] }