Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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/12.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 如何在typescript中动态合并两个数组对象?_Javascript_Arrays_Json_Angular_Typescript - Fatal编程技术网

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)});
});
控制台日志(结果)