javascript中基于键的对象合并

javascript中基于键的对象合并,javascript,json,ecmascript-6,lodash,Javascript,Json,Ecmascript 6,Lodash,我有4个独立的对象数组,是否有一种方法可以根据对象内部的键将所有对象连接到一个大对象中 这里有一个例子 输出:我想要实现的目标 [ { "bugId": "", "testerId": "", "firstName": "", "lastName": "", "country": "", "deviceId":"", "description":"" } ] 测试人员的对象(超过500个) bugId的对象(这应该是我们能够从中获得输出

我有4个独立的对象数组,是否有一种方法可以根据对象内部的键将所有对象连接到一个大对象中

这里有一个例子 输出:我想要实现的目标

[
{
    "bugId": "",
    "testerId": "",
    "firstName": "",
    "lastName": "",
    "country": "",
    "deviceId":"",
    "description":""
}
]

测试人员的对象
(超过500个)

bugId的对象(这应该是我们能够从中获得输出的主要对象) 由于
deviceId
连接到
description
testerId
连接到
firstName
lastName
国家/地区

[  
   {  
      "bugId":"1",
      "deviceId":"1",
      "testerId":"1"
   }
]
对象对于
测试仪\u设备
,一个测试仪提供4个设备

[  
   {  
      "testerId":"1",
      "deviceId":"1"
   },
   {  
      "testerId":"1",
      "deviceId":"2"
   },
   {  
      "testerId":"1",
      "deviceId":"3"
   },
   {  
      "testerId":"1",
      "deviceId":"10"
   }
]
设备的对象

[  
   {  
      "deviceId":"1",
      "description":"iPhone 4"
   }
]

我搜索了库,但有人提到,对于同名的键,不可能合并。我应该采取什么方法?

将测试人员和设备收集到单独的应用程序中。 使用迭代bugs数组,并使用以下ID组合两个贴图中的对象:

const testers=[{“testerId”:“1”,“firstName”:“John”,“lastName”:“Doe”,“country”:“US”}];
const-bug=[{“bugId”:“1”,“deviceId”:“1”,“testerId”:“1”}];
const devices=[{“deviceId”:“1”,“description”:“iphone4”}];
const createMap=(arr,key)=>arr.reduce((m,o)=>m.set(o[key],o),newmap());
const testersMap=createMap(testers'testerId');
const devicesMap=createMap(设备,'deviceId');
const merged=bugs.map({bugId,testerId,deviceId})=>Object.assign({bugId},testersMap.get(testerId),devicesMap.get(deviceId));

console.log(合并)将测试仪和设备收集到单独的应用程序中。 使用迭代bugs数组,并使用以下ID组合两个贴图中的对象:

const testers=[{“testerId”:“1”,“firstName”:“John”,“lastName”:“Doe”,“country”:“US”}];
const-bug=[{“bugId”:“1”,“deviceId”:“1”,“testerId”:“1”}];
const devices=[{“deviceId”:“1”,“description”:“iphone4”}];
const createMap=(arr,key)=>arr.reduce((m,o)=>m.set(o[key],o),newmap());
const testersMap=createMap(testers'testerId');
const devicesMap=createMap(设备,'deviceId');
const merged=bugs.map({bugId,testerId,deviceId})=>Object.assign({bugId},testersMap.get(testerId),devicesMap.get(deviceId));

console.log(合并)
您可以使用Lodash将
测试员
设备
数组转换为对象,由它们各自的ID设置密钥。然后,您可以迭代您的
bug
数组并建立相关数据
测试仪设备如何发挥作用?它是否相关?
测试仪\u设备
,可以避免。As必须根据设备名称进行搜索,我可以用数字代替设备名称,即
deviceId
。您可以使用Lodash将
测试仪
设备
数组转换为对象,由其各自的ID进行键控。然后,您可以迭代您的
bug
数组并建立相关数据
测试仪设备如何发挥作用?它是否相关?
测试仪\u设备
,可以避免。As必须根据设备名称进行搜索,我可以用数字代替设备名称,即
deviceId
[  
   {  
      "deviceId":"1",
      "description":"iPhone 4"
   }
]