i am wonder what this line in code do:
(result[obj[key]] = result[obj[key]] || []).push(obj);
What it exactly means? If x = x or [] add object to the list?
Whole code with output:
const people = [
  {
    name: "Rohan",
    age: 18
  },
  {
    name: "Mohan",
    age: 19
  },
  {
    name: "Shawn",
    age: 20
  },
  {
    name: "Michael",
    age: 21
  },
  {
    name: "David",
    age: 22
  },
];
let groupBy = (array, key) => {
  return array.reduce((result, obj) => {
    (result[obj[key]] = result[obj[key]] || []).push(obj);
    return result;
  }, {});
};
console.log(groupBy(people, "age"));Output:
    {
      '18': [ { name: 'Rohan', age: 18 } ],
      '19': [ { name: 'Mohan', age: 19 } ],
      '20': [ { name: 'Shawn', age: 20 } ],
      '21': [ { name: 'Michael', age: 21 } ],
      '22': [ { name: 'David', age: 22 } ]
    }
 
     
     
    