我正在尝试创建一个库函数,其中使用JSON文件(由directory tree创建),在其中挖掘每个文件夹,然后构建交互式<ul>
列表。我正在通过控制台测试它,它在文件夹json
中无限循环(根据此示例)。
我的代码如下......
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 :(得分:1)
for (i=0; i < array.length; i++) { <-- i is global!
您需要使用i
定义var
,因此它不是全局的。每次调用它时,每次迭代都会重置为零。
for (var i=0; i < array.length; i++) {