假设我有一个像这样的对象:
var cars = [{
make: 'audi',
model: 'r8',
year: ['2011', '2012']
}, {
make: 'audi',
model: 'rs5',
year: ['2011,', '2013']
}, {
make: 'ford',
model: 'mustang',
year: ['2012', '2013']
}, {
make: 'ford',
model: 'fusion',
year: ['2012', '2015']
}];
我想创建一个按年份分组的汽车对象。
所以喜欢..
var cars = [{
2012: [
{ make: 'audi', model: 'r8' },
{ make: 'ford', model: 'mustang' },
{ make: 'ford', model: 'fusion' }
],
2013: [{ make: 'audi', model: 'rs5' }, { make: 'ford', model: 'mustang' }]
etc..
}]
我怎样才能轻松地使用lodash? groupBy
只是数组的组,因为它是一个字符串。好像首先需要地图功能。
答案 0 :(得分:2)
基本上,打开(“线性化”)列表,然后应用groupBy
result = _(cars)
.flatMap(car => car.year.map(
year => _.assign({}, car, {year})
))
.groupBy('year')
.value()
这会保留年份字段,但不知道这是否是一个问题。