code: function groupBy(collection, iteratee) {
      return collection.reduce(function (records, record) {
          var key = iteratee(record);
          if (records[key] === undefined) {
              records[key] = [];
          }
          records[key].push(record);
          return records;
      }, {});
  }
docs: Creates an object composed of keys generated from the results of running
  each element of collection thru iteratee.