groupBy

Use reduce to sort array of objects

by maiastone

JavaScript

let students = [
  { name: "Jane", module: "4FE", track: "frontEnd" },
  { name: "Jane", module: "3FE", track: "frontEnd" },
  { name: "Jane", module: "3BE", track: "backEnd" },
  { name: "Jane", module: "4FE", track: "frontEnd" },
  { name: "Jane", module: "2BE", track: "backEnd" },
  { name: "Jane", module: "3BE", track: "backEnd" }
];

function groupBy(key) {
	return students.reduce(function(a, i) {
    if(!a[i[key]]) {
    	a[i[key]] = []
    }
    a[i[key]].push(i)
		return a
  }, {})
}

groupBy('track')