Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按键组合json数组中的对象键值,javascript_Javascript_Arrays_Json - Fatal编程技术网

按键组合json数组中的对象键值,javascript

按键组合json数组中的对象键值,javascript,javascript,arrays,json,Javascript,Arrays,Json,我需要按键组合json数组中的对象键值 json1 = [ {key:'xyz', value:['a','b']}, {key:'pqrs', value:['x','y']} ] json2 = [ {key:'xyz', value:['c','b']}, {key:'pqrs', value:['e','f']} ] 我需要一个组合在javascript中的对象键值,如下所

我需要按键组合json数组中的对象键值

json1 = [
          {key:'xyz', value:['a','b']},
          {key:'pqrs', value:['x','y']}
        ]

json2 = [
          {key:'xyz', value:['c','b']},
          {key:'pqrs', value:['e','f']}
        ]
我需要一个组合在javascript中的对象键值,如下所示

 json3 = [
              {key:'xyz', value:['a','b','c']},
              {key:'pqrs', value:['x','y','e','f']}
            ]

因此,希望通过键组合json数组中对象上的唯一值。

在数学(集合论)中,加入数组时要寻找的是一个
并集

json1 = [
          {key:'xyz', value:['a','b']},
          {key:'pqrs', value:['x','y']}
        ]

json2 = [
          {key:'xyz', value:['c','b']},
          {key:'pqrs', value:['e','f']}
        ]
有关联合实现的类似主题已经打开。

您可以使用
forEach()
循环添加到数组中,并
Set
从对象值中删除重复项

var json1=[{key:'xyz',value:['a','b']},{key:'pqrs',value:['x','y']}]
var json2=[{key:'xyz',value:['c','b']},{key:'pqrs',value:['e','f']}]
var结果=[]
json1.concat(json2.forEach)(函数(e){
如果(!this[e.key])this[e.key]=e,则result.push(this[e.key])
否则此[e.key].value=[…新集合(此[e.key].value.concat(e.value))]
}, {})
console.log(结果)
函数组合JSON(json1,json2){
var ret=[]
for(设i=json1.length;i--;){
json2Obj=json2.find(item=>item.key===json1[i].key)
后推({
key:json1[i]。key,
value:json1[i].value.concat(
json2Obj?json2Obj.value:[]
)
})
}
回程网
}
json1=[
{键:'xyz',值:['a','b']},
{键:'pqrs',值:['x','y']}
]
json2=[
{键:'xyz',值:['c','b']},
{键:'pqrs',值:['e','f']}
]

console.log(combinedJson(json1,json2))
请分享您的努力/code请分享您的代码或您在问题中迄今为止尝试过的内容您是否应该毫不费力地回答一个问题?@Nenad Vracar这是在处理这个数据json1=[{“key”:“xyz”,“value”:[{“text”:“#incident/test”}]},{“key”:“@abcd”,“value”:[{“text”:“text”:“2”}],“pattern”:^([0-9]|[1-9][0-9]$“}]json2=[{“key”:“xyz”,“value”:[{“text”:“test”},{“text”:“incident/test”}],“check”:true},{“key”:“@abcd”,“value”:[{“text”:“2”}],“pattern”:“^([0-9]|[1-9][0-9]),“check”:true}]你应该试试。非常好。唯一不同于要求的是你得到了“b”在第二个对象中复制,而原始海报的答案中只需要一个“b”。