วิธีที่มีประสิทธิภาพที่สุดในการจัดกลุ่มตามคีย์บนอาร์เรย์ของวัตถุใน js คือการใช้ฟังก์ชันลด
วิธีลด () เรียกใช้ฟังก์ชันตัวลด (ที่คุณระบุ) ในแต่ละองค์ประกอบของอาร์เรย์ ส่งผลให้มีค่าเอาต์พุตเดียว
ตัวอย่าง
const people =[ { ชื่อ:'Lee', อายุ:21 }, { ชื่อ:'Ajay', อายุ:20 }, { ชื่อ:'Jane', อายุ:20 }];function groupBy(objectArray, property ) { return objectArray.reduce ((acc, obj) => { const key =obj[property]; if (!acc[key]) { acc[key] =[]; } // เพิ่มวัตถุในรายการสำหรับคีย์ที่กำหนด ค่า acc[key].push(obj); return acc; }, {});}const groupedPeople =groupBy(people, 'age');console.log(groupedPeople);
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
{ 20:[ { ชื่อ:'Ajay' อายุ:20 } { ชื่อ:'Jane' อายุ:20 } ], 21:[ { ชื่อ:'Lee' อายุ:21 } ] }ก่อน>