Group By Polyfill
const data = [
{
name: "emp1",
location: "loc1",
manager: "manager1",
},
{
name: "emp2",
location: "loc2",
manager: "manager2",
},
{
name: "emp3",
location: "loc4",
manager: "manager1",
},
{
name: "emp4",
location: "loc2",
manager: "manager2",
},
{
name: "emp5",
location: "loc3",
manager: "manager4",
},
];
Array.prototype.groupByPolyfill = function (key) {
let array = this;
let ans = {};
for (let item of array) {
if (ans[item[key]] === undefined) {
ans[item[key]] = [];
}
ans[item[key]].push(item);
}
return ans;
};
console.log(data.groupByPolyfill("manager"));
{
manager1: [
{ name: "emp1", location: "loc1", manager: "manager1" },
{ name: "emp3", location: "loc4", manager: "manager1" },
],
manager2: [
{ name: "emp2", location: "loc2", manager: "manager2" },
{ name: "emp4", location: "loc2", manager: "manager2" },
],
manager4: [{ name: "emp5", location: "loc3", manager: "manager4" }],
};