Group Object using ID
by Jithin Raj P R
JavaScript
const data = [
{ id: 1, name: "Alice", dept: "IT" },
{ id: 2, name: "Bob", dept: "HR" },
{ id: 1, name: "John", dept: "IT" },
{ id: 2, name: "Sara", dept: "HR" },
{ id: 3, name: "Mike", dept: "Finance" }
];
function dataOrganizer(arr, key) {
const grouped = arr.reduce((acc, item) => {
const groupKey = item[key];
if (!acc[groupKey]) {
acc[groupKey] = [];
}
acc[groupKey].push(item);
return acc; // IMPORTANT
}, {});
// Convert object to required array format
return Object.keys(grouped).map(k => ({
[key]: Number(k),
users: grouped[k]
}));
}
console.log(dataOrganizer(data, 'id'));
// Output
// [
// {
// id: 1,
// users: [
// { id: 1, name: "Alice", dept: "IT" },
// { id: 1, name: "John", dept: "IT" }
// ]
// },
// {
// id: 2,
// users: [
// { id: 2, name: "Bob", dept: "HR" },
// { id: 2, name: "Sara", dept: "HR" }
// ]
// },
// {
// id: 3,
// users: [
// { id: 3, name: "Mike", dept: "Finance" }
// ]
// }
// ]