Lodash Group By

http://stackoverflow.com/questions/24627026/lo-dash-array-grouping

by M. Mahbubur Rahman

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>
<!--
http://stackoverflow.com/questions/24627026/lo-dash-array-grouping
-->

JavaScript

var characters = [
  { 'name': 'barney', 'age': 42,  'pet': 'dog' },
  { 'name': 'fred',   'age': 35,  'pet': 'dog' },
  { 'name': 'barney', 'age': 42,  'pet': 'cat' },
  { 'name': 'fred',   'age': 35,  'pet': 'goldfish' }
];

var result=_.chain(characters).groupBy("name").map(function(v, i) {
  return {
    name: i,
    age: _.get(_.find(v, 'age'), 'age'),
    pet: _.map(v, 'pet')
  }
}).value();
document.body.innerHTML = '<pre>' + JSON.stringify(result, null, '  ') + '</pre>';