【发布时间】:2020-10-21 13:28:56
【问题描述】:
我有一个这样的对象数组:
[ { key: 'particles', value: 'GN' },
{ key: 'particles', value: 'TR' },
{ key: 'wave', value: 'AB' },
{ key: 'sense', value: 'TU' } ]
我需要得到类似的东西:
[ { system.particles: ['GN', 'TR'] }, system.wave: {'AB'}, system.sense: {'TE'} } ]
我尝试使用 lodash,正如我从使用 groupBy 函数的示例中看到的那样。但我一直无法得到我想要的,其中包括键名更改。
这是我的代码的一部分:
let exo = _.mapValues(_.groupBy(desc, 'key'),
clist => clist.map(tags => _.omit(desc, ['key'])))
但我只得到这个,这不是我要找的
{ particles: [ { value: 'GN' }, { value: 'TR' } ],
wave: [ { value: 'AB' } ],
sense: [ { value: 'TU' } ] }
【问题讨论】:
-
这部分
{'GN', 'TR'}无效。你需要一个数组。 -
用 desc.value 代替 _.omit(...) 怎么样?
-
@Vortex 检查我的答案是你想要的吗?
-
这是什么
system.particles? -
@NinaScholz 你是对的,对不起。固定编辑
标签: javascript arrays typescript object lodash