JavaScript转换一维关联数组中的多维数组

JavaScript转换一维关联数组中的多维数组,javascript,multidimensional-array,Javascript,Multidimensional Array,我有一个多维数组,它包含两个嵌套数组 看起来像这样: $scope.multidimensionalArray = [{ id:1, name:"John", .... nestedArray1:[{ importantKey1:"important_data1", .... nestedArray

我有一个多维数组,它包含两个嵌套数组

看起来像这样:

$scope.multidimensionalArray = [{
            id:1,
            name:"John",
            ....
            nestedArray1:[{
                importantKey1:"important_data1",
                ....
                    nestedArray2:[{
                            importantKey2:"important_data2",
                                ....
                            }
                                 ]},
                                 ....
                                         ]}];
$scope.oneDimensional = [
    { 
        id:1,
        name:"John",
        importantKey1:"important_data1", 
        importantKey2: "important_data2",
        ....
    },
    ....
   ];
如何在一维中转换此多维数组,必须如下所示:

$scope.multidimensionalArray = [{
            id:1,
            name:"John",
            ....
            nestedArray1:[{
                importantKey1:"important_data1",
                ....
                    nestedArray2:[{
                            importantKey2:"important_data2",
                                ....
                            }
                                 ]},
                                 ....
                                         ]}];
$scope.oneDimensional = [
    { 
        id:1,
        name:"John",
        importantKey1:"important_data1", 
        importantKey2: "important_data2",
        ....
    },
    ....
   ];

与sql或一般的关系数据库一样,在ode维度中使用此数据的唯一机会是多次使用以下内容: 因此,它将是id,name多次,并且对于每一次,您应该从嵌套数组中获得一个条目

如果存在双层嵌套,则可能需要重复更多字段。
从sql中查找JOIN定义,它可能对此有所启发

与sql或一般关系数据库一样,在ode维度中使用此数据的唯一机会是多次使用以下内容: 因此,它将是id,name多次,并且对于每一次,您应该从嵌套数组中获得一个条目

如果存在双层嵌套,则可能需要重复更多字段。 从sql中查找JOIN定义,它可能对此有所启发

此解决方案具有以下特点:

函数getProperties(o,obj){ Object.keys(o).forEach(函数(k){ if(Array.isArray(o[k])){ getItems(o[k],obj); }否则{ obj[k]=o[k]; } }); } 函数getItems(数组,obj){ array.forEach(函数(o){ getProperties(o,obj); }); } var多维数组=[{id:1,名称:“John”,嵌套数组1:[{importantKey1:“重要数据1”,嵌套数组2:[{importantKey2:“重要数据2”,}]}]},{id:2,名称:“Johanna”,嵌套数组1:[{ImportantantKey1:“重要数据11”,嵌套数组2:[{ImportantantKey2:“重要数据12”,}]}]}], 结果=多维数组.map(函数(o){ var obj={}; getProperties(o,obj); 返回obj; }); document.write(“”+JSON.stringify(结果,0,4)+“”)此解决方案的功能和功能

函数getProperties(o,obj){ Object.keys(o).forEach(函数(k){ if(Array.isArray(o[k])){ getItems(o[k],obj); }否则{ obj[k]=o[k]; } }); } 函数getItems(数组,obj){ array.forEach(函数(o){ getProperties(o,obj); }); } var多维数组=[{id:1,名称:“John”,嵌套数组1:[{importantKey1:“重要数据1”,嵌套数组2:[{importantKey2:“重要数据2”,}]}]},{id:2,名称:“Johanna”,嵌套数组1:[{ImportantantKey1:“重要数据11”,嵌套数组2:[{ImportantantKey2:“重要数据12”,}]}]}], 结果=多维数组.map(函数(o){ var obj={}; getProperties(o,obj); 返回obj; });
document.write(“”+JSON.stringify(结果,0,4)+“”)谢谢你的回答,但不幸的是结果是一样的。我得到了相同的多维数组。不过我把你的答案抄错了。它起作用了!非常感谢。谢谢你的回答,但不幸的是结果是一样的。我得到了相同的多维数组。不过我把你的答案抄错了。它起作用了!非常感谢你。