Group Object using ID
by Jithin Raj P R
JavaScript
var 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) => {
(acc[item[key]] ||= []).push(item);
return acc;
}, {});
return Object.entries(grouped).map(([k, users]) => ({
[key]: Number(k),
users
}))
}
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" }
// ]
// }
// ]