【发布时间】:2019-10-30 03:46:21
【问题描述】:
当两个项目具有相同的typeId 时,我正在使用mapValues 和groupBy 分组并创建keys。
例如原始数据是
{
"Name": "One",
"typeId": 1
},
{
"Name": "Two",
"typeId": 2
},
{
"Name": "One Two",
"typeId": 1
},
{
"Name": "Three",
"typeId": 3
},
{
"Name": "Three Two",
"typeId": 3
}
通过使用groupBy,我将具有匹配typeId 和omit 的对象分组为来自`objects as...的typeId 值...
const GroupedTypes = Object.entries(
_.mapValues(_.groupBy(data, 'typeID'), rlist =>
rlist.map(type => _.omit(type, 'typeID'))
)
);
按预期返回...
[
"1",
[
{
"Name": "One",
},
{
"Name": "One Two",
}
]
],
[
"2",
[
{
"Name": "Two",
}
]
],
[
"3",
[
{
"Name": "Three",
}
],
[
{
"Name": "Three Two",
}
]
]
但是,我还想从第一个 0 对象的值 Name 中为 Name 添加一个对象。因此最终得到类似..
[
"1",
"One",
[
{
"Name": "One",
},
{
"Name": "One Two",
}
]
],
[
"2",
"Two",
[
{
"Name": "Two",
}
]
],
[
"3",
"Three",
[
{
"Name": "Three",
}
],
[
{
"Name": "Three Two",
}
]
]
我一直在查看lodash 文档,但找不到有效的方法。我怎样才能做到这一点?
【问题讨论】:
-
lodash 有必要吗?使用内置的 Javascript 方法很容易做到这一点
标签: javascript arrays object ecmascript-6 lodash