我想創建一個函數,它將遍歷數組的層次並將它們連接在一起。我正在努力想辦法做到這一點。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對不起,我添加了我迄今爲止所擁有的內容。 –