Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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
Javascript 如何同时合并平面阵列和平面阵列_Javascript_Arrays - Fatal编程技术网

Javascript 如何同时合并平面阵列和平面阵列

Javascript 如何同时合并平面阵列和平面阵列,javascript,arrays,Javascript,Arrays,我有两个数据数组,一个是树状结构,另一个只是一个带有细节的嵌套数组 我现在要做的是将这个细节数组展平,并将其合并到树的结构中 “详细信息”和“树”都有具有相同唯一ID的记录 var树=[{ “儿童”:[{ “儿童”:[…], “ID”:“1”, “悬而未决的变化”:没错, }], “ID”:“22”, “悬而未决的变化”:错误, }]; 变量详细信息=[{ “地址”:{ “管辖权”:{ “名称”:“联合王国” }, “城市”:“沃尔瑟姆十字” }, “ID”:“1”, “名称”:“J” }];

我有两个数据数组,一个是树状结构,另一个只是一个带有细节的嵌套数组

我现在要做的是将这个细节数组展平,并将其合并到树的结构中

“详细信息”和“树”都有具有相同唯一
ID
的记录

var树=[{
“儿童”:[{
“儿童”:[…],
“ID”:“1”,
“悬而未决的变化”:没错,
}],
“ID”:“22”,
“悬而未决的变化”:错误,
}];
变量详细信息=[{
“地址”:{
“管辖权”:{
“名称”:“联合王国”
},
“城市”:“沃尔瑟姆十字”
},
“ID”:“1”,
“名称”:“J”
}];
var finalArray=u2;.map(树,函数(e){
return u.extend(e,u.omit(u.findWhere)(详细信息{
ID:e.ID
})("ID");;
});
控制台日志(finalArray)

您可以使用
for…in
循环创建递归函数,该函数将循环deep tree对象,然后使用
find
详细查找具有相同id的对象并添加属性

var树=[{
“儿童”:[{
“儿童”:[…],
“ID”:“1”,
“悬而未决的变化”:没错,
}],
“ID”:“22”,
“悬而未决的变化”:错误,
}];
变量详细信息=[{
“地址”:{
“管辖权”:{
“名称”:“联合王国”
},
“城市”:“沃尔瑟姆十字”
},
“ID”:“1”,
“名称”:“J”
}];
函数makeTree(数据){
用于(数据中的var i){
if(数据类型[i]=“对象”)makeTree(数据[i])
如果(i='ID'){
var f=详细信息。查找(函数(e){
返回e.ID==数据[i]
})
如果(f){
对象。分配(数据{
“名称”:f.名称,
“地址城市”:f.地址城市,
“地址管辖权名称”:f.地址管辖权名称
})
}
}
}
}
makeTree(树)
console.log(树)