Javascript 如何在typescript中动态合并两个数组对象?
我有两个类似这样的数组Javascript 如何在typescript中动态合并两个数组对象?,javascript,arrays,json,angular,typescript,Javascript,Arrays,Json,Angular,Typescript,我有两个类似这样的数组 array1 = [ { Name: "BMW car", id: "BMW", group: "car", children: [ { Name: "320 Mod", id: "320", group: "BMW" }, { Nam
array1 = [
{
Name: "BMW car",
id: "BMW",
group: "car",
children: [
{ Name: "320 Mod", id: "320", group: "BMW" },
{ Name: "X3 Mod", id: "X3", group: "BMW" },
{ Name: "X5 Mod", id: "X5", group: "BMW" }
]
}
];
array2 = [
{
id: "BMW",
description: "parent car BMW",
children: [
{ id: "320", description: "parent car BMW, model 320", },
{ id: "X3", description: "parent car BMW model X3", },
{ id: "X5", description: "parent car BMW Model X5", }
]
}
];
结果数组应该如下所示
arrayObj = [
{
Name: "BMW car",
id: "BMW",
group: "car",
description: "parent car BMW",
children: [
{ Name: "320 Mod", id: "320", group: "BMW", description: "parent car BMW model 320", },
{ Name: "X3 Mod", id: "X3", group: "BMW", description: "parent car BMW model X3", },
{ Name: "X5 Mod", id: "X5", group: "BMW", description: "parent car BMW model X5", }
]
}
];
我尝试了下面的代码,但是没有合并children值。谁能帮帮我吗
var resultArray = array1.reduce((arr, e) => {
arr.push(Object.assign({}, e, array2.find(a => a.id == e.id)))
return arr;
}, [])
你可以用这个
var数组1=[
{
名称:“宝马汽车”,
id:“宝马”,
小组:“汽车”,
儿童:[
{Name:“320 Mod”,id:“320”,group:“BMW”},
{名称:“X3车型”,id:“X3”,集团:“宝马”},
{名称:“X5模块”,id:“X5”,组:“宝马”}
]
}
];
变量array2=[
{
id:“宝马”,
描述:“母车宝马”,
儿童:[
{id:“320”,描述:“母车宝马,320型”},
{id:“X3”,描述:“母车宝马X3型”},
{id:“X5”,描述:“宝马X5型母车”}
]
}
];
var result=array1.map(el1=>{
var el2=array2.find(el=>el1.id==el.id);
返回{…el1,…el2,childs:el1.childs.map(child1=>({…child1,…el2.childs.find(child2=>child2.id==child1.id)});
});
控制台日志(结果)代码>