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" }],
};