
[英]GroupBy array and then sortBy date that array using lodash
[英]Using lodash groupby when your key is an array of strings
假设我有一个像这样的对象:
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
只是按数组对字符串进行分组。 似乎首先需要一个map函数。
基本上,解包(“线性化”)列表,然后应用groupBy
result = _(cars)
.flatMap(car => car.year.map(
year => _.assign({}, car, {year})
))
.groupBy('year')
.value()
但是,这保留了年份字段,不知道这是否是一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.