我想创建一个函数,它将遍历数组的层次并将它们连接在一起。我正在努力想办法做到这一点。Javascript递归函数问题
我调用一个Web API,它返回一些具有相同属性和布局的数据,但可以在有多少Hierarchy层数组中有所不同。
文件夹:文件夹可以包含“路线”,但也可以包含在其内部的另一个文件夹,然后可以还含有较多的“路线”等
路线:单个对象,它是一个路由。
例如:
{
"id":1,
"folders":[
{
"id":2,
"folders":[
{
"id":3,
"folders":[],
"routes":[]
}
],
"routes":[
{
"id":1002,
"name":"Route3"
},
{
"id":1003,
"name":"Route4"
}
]
}
],
"routes":[
{
"id":1000,
"name":"Route1"
},
{
"id":1001,
"name":"Route2"
}
]
}
我需要能够继续深入到层次结构和CONCAT所有文件夹数组的路线阵列,这样我就可以有一个孩子绑定剑道的TreeView这将是文件夹阵列。
到目前为止,我曾尝试:
for (var i = 0; i < Folders.length; i++) {
if (Folder[i].Folders.length > 0) {
for (var e = 0; e < Folder[i].Folder[e].length; e++) {
if (Folder[i].Folders[e].length > 0) {
...
}
}
}
}
与该方法的问题是,我永远不会知道有多少层会出现,因此不是一个可行的方法。
结果我需要的是上面的例子看起来像:
{
"id":1,
"folders":[
{
"id":2,
"folders":[
{
"id":3,
"folders":[
],
"routes":[
]
},
{
"id":1002,
"name":"Route3"
},
{
"id":1003,
"name":"Route4"
}
]
},
{
"id":1000,
"name":"Route1"
},
{
"id":1001,
"name":"Route2"
}
]
}
你或许应该更新与样品JSON和所需的输出你的问题,因此,很容易理解 –
你有没有尝试过了吗?向我们展示您已拥有的代码,并询问您遇到麻烦的部分。 – DDRamone
@DDRamone对不起,我添加了我迄今为止所拥有的内容。 –