【发布时间】:2021-07-08 18:02:03
【问题描述】:
我正在尝试根据特定值对对象中的数组进行分组。即使在网上看到文档并在 Stackoverflow 上研究了类似的问题后,我也找不到我的问题的答案。
例如我有这个对象:
const myList = [
{
name: "task 1",
mission: {
id: 1,
name: "mission #1",
...
}
},
{
name: "task 1",
mission: {
id: 3,
name: "mission #2",
...
}
},
{
name: "task 2",
mission: {
id: 6,
name: "mission #4",
...
}
},
{
name: "task 2",
mission: {
id: 19,
name: "mission #3",
...
}
},
...]
js 中按名称对我的对象进行分组并将此对象转换为的最佳方法是:
const myNewList = [
{
name: "task 1",
mission1: {
id: 1,
name: "mission #1",
...
},
mission2: {
id: 2,
name: "mission #2",
...
}
},
{
name: "task 2",
mission3: {
id: 3,
name: "mission #3",
...
},
mission4: {
id: 4,
name: "mission #4",
...
}
},
...]
提前感谢您的帮助。
【问题讨论】:
-
您确定要在结果中为
mission提供唯一名称吗?与missions: [ {id:3, name:...}, {id:4,name:...}]这样的数组相比,这对代码不太友好。然后每个组都有相同的“任务”属性 -
您好,这只是一个简单的例子。实际上我在这样的对象中使用它:
{ description: "", Admin: { //multiple value }, Reader: { //multiple value }, Editor: { //multiple value } } -
那么“多值”会是什么样子?仍然可能需要数组而不是对象。递增
mission_1->mission_x似乎不实用 -
试试 lodash.groupBy
标签: javascript node.js arrays reactjs object