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)+“”)代码>谢谢你的回答,但不幸的是结果是一样的。我得到了相同的多维数组。不过我把你的答案抄错了。它起作用了!非常感谢。谢谢你的回答,但不幸的是结果是一样的。我得到了相同的多维数组。不过我把你的答案抄错了。它起作用了!非常感谢你。