2016-09-15 81 views
0

我正在嘗試使用JSON文件(由directory tree創建)在哪裏挖入每個文件夾,然後構建一個交互式<ul>列表的庫函數。我正在通過控制檯進行測試,它在文件夾json中無限循環(按照此示例)。無限循環,而不是移動到下一個文件夾

My json file

我的代碼如下...

var directory = './app'; 
var jSon = dirTree(directory, ['.js', '.json', '.html']); 

console.log(jSon.children.length) 

libBuilder(directory, jSon.children) 

function libBuilder(directory, array) { 
    for (i=0; i < array.length; i++) { 
    if (fs.statSync(path.join(directory, array[i].name)).isFile()) { 
     console.log(colors.cyan(array[i].name)) 
    } else if (fs.statSync(path.join(directory, array[i].name)).isDirectory()) { 
     console.log(colors.red(array[i].name)); 
     libBuilder(path.join(directory, array[i].name), array[i].children) 
    } 
    }; 
} 

此控制檯輸出不斷地重複:

json 
comic.json 
config.json 
library.json 
dragscroll.js 
file.js 

如何修復了代碼,它在讀取一切一個文件夾超過然後移出檢查對象數組中的下一次?

+0

什麼是執行此腳本?看起來無論是調用它將陷入一個無限循環而不是這個代碼。 – httpNick

+0

這是我測試通過節點代碼通過節點treeTest.js' –

+3

'爲(i = 0;我 epascarello

回答

1
for (i=0; i < array.length; i++) { <-- i is global! 

您需要定義ivar所以它不是全球性的。每次你調用它時,它會在每次迭代時重置爲零。

for (var i=0; i < array.length; i++) { 
相關問題