有谁知道一种方法(如果可能的话,lodash)通过对象键对对象数组进行分组,然后根据分组创建一个新的对象数组?例如,我有一个汽车对象数组:
const 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'
},
];
我想制作一个按 make
分组的新汽车对象数组:
const cars = {
'audi': [
{
'model': 'r8',
'year': '2012'
}, {
'model': 'rs5',
'year': '2013'
},
],
'ford': [
{
'model': 'mustang',
'year': '2012'
}, {
'model': 'fusion',
'year': '2015'
}
],
'kia': [
{
'model': 'optima',
'year': '2012'
}
]
}
原文由 Trung Tran 发布,翻译遵循 CC BY-SA 4.0 许可协议
蒂莫的回答 是我会怎么做。简单
_.groupBy
,并允许在分组结构中的对象中有一些重复。但是,OP 还要求删除重复的
make
密钥。如果你想一路走下去:产量:
如果您想使用 Underscore.js 执行此操作,请注意它的
_.mapValues
版本称为_.mapObject
。