Javascript 如何最好地将JSON子数据对象数组重组为父数组
我们有一些JSON数据,其中每个父数组对象都可以有一个属性,该属性是一个子数组,如下所示:Javascript 如何最好地将JSON子数据对象数组重组为父数组,javascript,arrays,json,Javascript,Arrays,Json,我们有一些JSON数据,其中每个父数组对象都可以有一个属性,该属性是一个子数组,如下所示: data: [ { value: 1, parent_id: null, label: "1.0 - TT One", children: [ { value: 3, label: "1.1 - TT One-One", parent_id: 1, }, { value:
data: [
{
value: 1,
parent_id: null,
label: "1.0 - TT One",
children: [
{
value: 3,
label: "1.1 - TT One-One",
parent_id: 1,
},
{
value: 4,
label: "1.2 - TT One-Two",
parent_id: 1,
}
]
},
{
value: 2,
parent_id: null,
label: "2.0 - TT Two",
children: [
{
value: 5,
label: "2.1 - TT Two-One",
parent_id: 2,
}
]
}
]
我们希望将子对象展平,这样我们最终得到一个数组,该数组包含所有父对象和子对象,如下所示:如果不高效,则不必保留命名数据:
data: [
{
value: 1,
parent_id: null,
label: "1.0 - TT One"
},
{ <-- FORMER CHILD
value: 3,
label: "1.1 - TT One-One",
parent_id: 1
},
{ <-- FORMER CHILD
value: 4,
label: "1.2 - TT One-Two",
parent_id: 1,
},
{
value: 2,
parent_id: null,
label: "2.0 - TT Two"
},
{ <-- FORMER CHILD
value: 5,
label: "2.1 - TT Two-One",
parent_id: 2,
}
]
如何在一个高效的庄园中最好地实现这一点?我们必须强调这是否会有所帮助
找到了一堆数组到数组展平和一些对象到数组展平,但没有将两者结合起来。如果我们有这个,我们就不需要发帖了。如果从我们所拥有的到我们所需要的都不明显,那重点是什么 关键是要了解什么是您的数据结构,以及如何访问该数据结构的每个元素 因为只有两个级别,所以您甚至不需要找到将初始数据转换为数组的通用解决方案。你知道如何遍历数组吗?然后您就知道了如何遍历具有数组属性的元素 无论如何,这里有一个递归和非递归的广义解 变量d=[{ 价值:1, 父项id:null, 标签:1.0-TT-One, 儿童:[{ 价值:3, 标签:1.1-TT-One, 家长id:1, }, { 价值:4, 标签:1.2-TT 1-2, 家长id:1, } ] }, { 价值:2, 父项id:null, 标签:2.0-TT 2, 儿童:[{ 数值:5, 标签:2.1-TT 2-1, 家长编号:2, }] } ]; 函数walkRecursivedata{ 让结果=[] data.forEachelement=>{ 设e={…元素} 结果:普什; 如果e.儿童{ 让孩子们走路 result=result.concatchildren 删除e.children } }; 返回结果; } 函数数据{ data=data.slice 让结果=[] 设d,oldData; 而d=data.shift{ 设el={……d} 普希尔先生 如果孩子们{ oldData=数据 数据=el.children.slice; 删除el.children; }否则{ 如果oldData&&data.length==0{ 数据=旧数据 oldData=null; } } } 返回结果; } console.logwalkRecursived
console.logwalkd发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试过的内容,以便说明您在某个问题中遇到的具体问题。有关更多信息,请参阅并获取。这是什么问题?找到了一个数组到数组展平的对接负载和一些对象到数组展平,但没有将两者结合起来。如果我们有这个,我们就不需要发帖了。如果从我们所拥有的到我们所需要的都不明显,那又有什么意义呢?问一个问题,然后得到递归的问题而不是答案?