How to group an array of objects by key

后端 未结 24 2908
后悔当初
后悔当初 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:44

    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'
    }].reduce((r, car) => {
    
      const {
        model,
        year,
        make
      } = car;
    
      r[make] = [...r[make] || [], {
        model,
        year
      }];
    
      return r;
    }, {});
    
    console.log(cars);

提交回复
热议问题