Javascript - reduce()

by Frank Liu

JavaScript

const users = [
  { name: "Alan", initYear: 2010, endYear: 2013, group: "user" },
  { name: "Noe", initYear: 2011, endYear: 2012, group: "user" },
  { name: "Mathias", initYear: 2000, endYear: 2006, group: "admin" },
]

const groupBy = (input, key) =>  input.reduce((acc, currentValue) => {
    const groupKey = currentValue[key]
    if (!acc[groupKey]) {
      acc[groupKey] = []
    }
    acc[groupKey].push(currentValue)
    return acc
  }, {});


const groupedUsers = groupBy(users, 'group');

console.log(groupedUsers)