Phương pháp hiệu quả nhất để nhóm theo một khóa trên một mảng đối tượng trong js là sử dụng hàm giảm.
Phương thức Reduce () thực thi một hàm giảm thiểu (mà bạn cung cấp) trên mỗi phần tử của mảng, dẫn đến một giá trị đầu ra duy nhất.
Ví dụ
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] =[];} // Thêm đối tượng vào danh sách cho khóa đã cho value acc [key] .push (obj); return acc;}, {});} const groupedPeople =groupBy (people, 'age'); console.log (groupedPeople);
Đầu ra
Điều này sẽ cung cấp đầu ra -
{20:[{name:'Ajay', age:20}, {name:'Jane', age:20}], 21:[{name:'Lee', age:21}]}