2016-09-15 77 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++) { 
相关问题