Javascript 减少java脚本中的对象数组

Javascript 减少java脚本中的对象数组,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个对象数组 [ { job_code: '123', application: 'Tree', permission_name: 'AP_SEARCH' }, { job_code: '123', application: 'Dog', permission_name: 'ALL_FA_SEARCH' }, { job_code: '123', application: 'Tree', permission_name: 'AP_DOWNLOAD' } ] 我需要这样的格

我有一个对象数组

[
{
 job_code: '123',
 application: 'Tree',
 permission_name: 'AP_SEARCH'
},
{
 job_code: '123',
 application: 'Dog',
 permission_name: 'ALL_FA_SEARCH'
},
{
 job_code: '123',
 application: 'Tree',
 permission_name: 'AP_DOWNLOAD'
}
]
我需要这样的格式

[
{ name: 'Tree', permissions: ['AP_SEARCH', AP_DOWNLOAD'] },
{ name: 'Dog', permissions: 'ALL_FA_SEARCH' },
]
我的代码是

const allowedApplications = rdsData.map((key) => ({ name: key.application, 
permissions: key.permission_name }));
console.log(rdsData);
但它的输出如下所示

[
{ name: 'Tree', permissions: 'AP_SEARCH' },
{ name: 'Dog', permissions: 'ALL_FA_SEARCH' },
{ name: 'Tree', permissions: 'AP_DOWNLOAD' }
]

请帮忙。感谢您抽出时间

您可以使用对象按
应用程序
分组

const
data=[{job_code:'123',application:'Tree',permission_name:'AP_SEARCH'},{job_code:'123',application:'Dog',permission_name:'ALL_FA_SEARCH'},{job_code:'123',application:'Tree',permission_name:'AP_DOWNLOAD'},
结果=Object.values(data.reduce((r,{application:name,permission\u name})=>{
r[name]??={name,权限:[]};
r[name].permissions.push(权限\名称);
返回r;
}, {}));
控制台日志(结果)

.as-console-wrapper{max-height:100%!important;top:0;}
[{应用程序:'Tree',权限名称:['AP\u-SEARCH','AP\u-DOWNLOAD']},{应用程序:'Dog',权限名称:'ALL\u-FA\u-SEARCH'}这是您的结果。但也需要在阵列中进行“全搜索”,看起来与通缉犯不同。安威,请看编辑。我知道你为什么把???=放在这里,像
a???=[]
,是
a=a | |[]
的缩写。你好,尼娜·斯科尔斯。我刚想出来。在响应中,它应该是“名称”和“权限”,而不是“应用程序”和“权限名称”。如果可以,请更新答案