【发布时间】:2017-07-21 18:23:14
【问题描述】:
假设我有一个这样的对象:
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 只是按数组分组,因为它是一个字符串。似乎首先需要一个地图功能。
【问题讨论】:
-
我格式化了代码,但我没有让它有效。请注意,JS 数组不能有这样的键,您可能需要一个对象字面量。
-
@EmileBergeron 谢谢我编辑。并不意味着将键作为字符串文字。
-
你没有抓住重点。您正在使用数组
[ ]表示法创建一个对象字面量,它应该是{ key: value }。 -
再次编辑对不起@EmileBergeron
标签: javascript arrays underscore.js lodash