合并JavaScript对象数组

合并JavaScript对象数组,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我正在使用JavaScript创建一个项目。我试图在某些条件下向JavaScript对象数组中添加值。一切都很好,我已经达到了预期的输出,但唯一的问题是代码看起来很长 让f1响应=[{ uuid:1, 名称:f1, }] 让F2响应=[{ 名称:f2, f1uuid:1, f3uuid:3 }] 让f3响应=[{ 姓名:f3, uuid:3, }] forvar i=0;我你可以用reduce来做那件事 让f1响应=[{ uuid:1, 名称:f1, }] 让F2响应=[{ 名称:f2, f

我正在使用JavaScript创建一个项目。我试图在某些条件下向JavaScript对象数组中添加值。一切都很好,我已经达到了预期的输出,但唯一的问题是代码看起来很长

让f1响应=[{ uuid:1, 名称:f1, }] 让F2响应=[{ 名称:f2, f1uuid:1, f3uuid:3 }] 让f3响应=[{ 姓名:f3, uuid:3, }]
forvar i=0;我你可以用reduce来做那件事

让f1响应=[{ uuid:1, 名称:f1, }] 让F2响应=[{ 名称:f2, f1uuid:1, f3uuid:3 }] 让f3响应=[{ 姓名:f3, uuid:3, }] f2Response=f2Response.reduceac,curr=>{ 常数{f3uuid,f1uuid}=curr; 让f3Index=f3Response.findIndexitem=>item.uuid==f3uuid; 让f1Index=f1Response.findIndexitem=>item.uuid==f1uuid; 常量{name:f3name}=f3Response[f3Index]; 常量{name:f1name}=f1Response[f1Index]; acc.push{…curr,f3name,f1name,}; 返回acc; }, []; console.logf2Response将f1Response和f3Response转换为[uuid,name]的。现在,通过各自的UUID获取响应和名称:

const createNamesMap=arr=> 新建Maparr.mapitem=>[item.uuid,item.name] const combine=f1、f2、f3=>{ const f1Map=createNamesMapf1//通过uuid创建f1名称的映射 const f3Map=createNamesMapf3//通过uuid创建f3名称的映射 返回f2.mapitem=>{ 项目 f3Name:f3Map.getitem.f3uuid,//获取f3名称 f1Name:f1Map.getitem.f1uuid//获取f1名称 } } 常量f1Response=[{uuid:1,name:f1}] 常量f2Response=[{name:f2,f1uuid:1,f3uuid:3}] 常量f3Response=[{name:f3,uuid:3}] 常量结果=组合1响应、F2响应、F3响应 console.logresult