我如何在数组另一个对象的键内获取数组的输出对象
所以我有一系列对象:
[
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
SubMenuId: 'SM001',
SubMenuName: 'Personal Information',
SubMenuImage: 'BsPerson',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
SubMenuId: 'SM002',
SubMenuName: 'Work',
SubMenuImage: 'FcWorkflow',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
SubMenuId: 'SM005',
SubMenuName: 'Document',
SubMenuImage: 'GrDocumentText',
SubMenuOrderno: '5',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
SubMenuId: 'SM006',
SubMenuName: 'Leave Log',
SubMenuImage: 'MdOutlineHolidayVillage',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
SubMenuId: 'SM007',
SubMenuName: 'Automation Log',
SubMenuImage: 'TbSettingsAutomation',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
SubMenuId: 'SM008',
SubMenuName: 'Rules',
SubMenuImage: 'MdRule',
SubMenuOrderno: '3',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
}
]
但是我想要它:
[
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
submenus :
[{
SubMenuId: 'SM001',
SubMenuName: 'Personal Information',
SubMenuImage: 'BsPerson',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM002',
SubMenuName: 'Work',
SubMenuImage: 'FcWorkflow',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
}]
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
submenus :
[{
SubMenuId: 'SM006',
SubMenuName: 'Leave Log',
SubMenuImage: 'MdOutlineHolidayVillage',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM007',
SubMenuName: 'Automation Log',
SubMenuImage: 'TbSettingsAutomation',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM008',
SubMenuName: 'Rules',
SubMenuImage: 'MdRule',
SubMenuOrderno: '3',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM009',
SubMenuName: 'Assets Request',
SubMenuImage: 'MdWebAsset',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
}]
}
]
so I have an Arrray of objects :
[
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
SubMenuId: 'SM001',
SubMenuName: 'Personal Information',
SubMenuImage: 'BsPerson',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
SubMenuId: 'SM002',
SubMenuName: 'Work',
SubMenuImage: 'FcWorkflow',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
SubMenuId: 'SM005',
SubMenuName: 'Document',
SubMenuImage: 'GrDocumentText',
SubMenuOrderno: '5',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
SubMenuId: 'SM006',
SubMenuName: 'Leave Log',
SubMenuImage: 'MdOutlineHolidayVillage',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
SubMenuId: 'SM007',
SubMenuName: 'Automation Log',
SubMenuImage: 'TbSettingsAutomation',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
SubMenuId: 'SM008',
SubMenuName: 'Rules',
SubMenuImage: 'MdRule',
SubMenuOrderno: '3',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
}
]
but I want it like :
[
{
MenuId: 'GM002',
MenuName: 'Profile',
MenuImage: 'CgProfile',
Orderno: '2',
submenus :
[{
SubMenuId: 'SM001',
SubMenuName: 'Personal Information',
SubMenuImage: 'BsPerson',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM002',
SubMenuName: 'Work',
SubMenuImage: 'FcWorkflow',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
}]
},
{
MenuId: 'GM003',
MenuName: 'Leave Request',
MenuImage: 'FcLeave',
Orderno: '3',
submenus :
[{
SubMenuId: 'SM006',
SubMenuName: 'Leave Log',
SubMenuImage: 'MdOutlineHolidayVillage',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM007',
SubMenuName: 'Automation Log',
SubMenuImage: 'TbSettingsAutomation',
SubMenuOrderno: '2',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM008',
SubMenuName: 'Rules',
SubMenuImage: 'MdRule',
SubMenuOrderno: '3',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
},
{
SubMenuId: 'SM009',
SubMenuName: 'Assets Request',
SubMenuImage: 'MdWebAsset',
SubMenuOrderno: '1',
SubSubMenuId: null,
SubSubMenuName: null,
SubSubMenuImage: null,
SubSubMenuOrderno: null
}]
}
]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以做到这一点,下面是一种方法。
There's endless ways you can do this, below is one approach.
您可以使用函数
array.prototype.reduce
进行分组,然后使用函数object.values
来提取分组对象。You can use the function
Array.prototype.reduce
for grouping the objects and then use the functionObject.values
for extracting the grouped objects.如果您使用的是库下划线,则可以执行类似的操作(为了示例而删除属性),
如果不是,则可以为Groupby创建一个polyfill。
我发现这是一个受欢迎的人,尽管它可能有点复杂。
If you're using the library underscore you could do something like this (removed properties for sake of example)
If not, you can just create a polyfill for groupBy.
Here's a popular one I found, though it could be a bit complex to understand.