无限循环而不是移动到下一个文件夹

时间:2016-09-15 17:57:06

标签: javascript json node.js

我正在尝试创建一个库函数,其中使用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

如何将代码修复到文件夹中读取所有内容的位置,然后移出以检查对象数组中的下一次?

1 个答案:

答案 0 :(得分:1)

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

您需要使用i定义var,因此它不是全局的。每次调用它时,每次迭代都会重置为零。

for (var i=0; i < array.length; i++) {