Group Object using ID
by Jithin Raj P R
JavaScript
var data = [
{ id: 144, name: "Alice", dept: "IT" },
{ id: 233, name: "Bob", dept: "HR" },
{ id: 144, name: "John", dept: "IT" },
{ id: 233, name: "Sara", dept: "HR" },
{ id: 343, name: "Mike", dept: "Finance" }
];
function groupById(arr, key){
const grouped = arr.reduce((acc, item) => {
const groupKey = item[key];
if (!acc[groupKey]) acc[groupKey] = [];
acc[groupKey].push(item);
return acc; // IMPORTANT
}, {});
return Object.keys(grouped).map(k => ({
[key]: Number(k),
item: grouped[k]
}));
}
console.log(groupById(data, 'id'));