Coding Challenge - #23: Group By Key

Write groupBy(items, key) that returns an object grouping the array of objects by the given property. groupBy([{t:"a",v:1},{t:"b",v:2},{t:"a",v:3}], "t") should give {a:[{t:"a",v:1},{t:"a",v:3}], b:[{t:"b",v:2}]}.

function groupBy(items, key) {
  // your code here
}

Rules:

  • Plain JavaScript, no libraries
  • Do not mutate the input array

Post your solution as a reply. Answer goes up in about a day.