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(树)