How to group an array of objects by key

后端 未结 24 2911
后悔当初
后悔当初 2020-11-21 05:13

Does anyone know of a (lodash if possible too) way to group an array of objects by an object key then create a new array of objects based on the grouping? For example, I hav

24条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-21 05:55

    You are looking for _.groupBy().

    Removing the property you are grouping by from the objects should be trivial if required:

    var cars = [{'make':'audi','model':'r8','year':'2012'},{'make':'audi','model':'rs5','year':'2013'},{'make':'ford','model':'mustang','year':'2012'},{'make':'ford','model':'fusion','year':'2015'},{'make':'kia','model':'optima','year':'2012'},];
    
    var grouped = _.groupBy(cars, function(car) {
      return car.make;
    });
    
    console.log(grouped);


    As a bonus, you get even nicer syntax with ES6 arrow functions:

    const grouped = _.groupBy(cars, car => car.make);
    

提交回复
热议问题