Node.js for(数组中的i)是否更新?

Node.js for(数组中的i)是否更新?,node.js,for-loop,filesystems,Node.js,For Loop,Filesystems,好的,我有这个代码 var cwd = __dirname; var files = fs.readdirSync(__dirname); for(var i in files){ if(fs.lstatSync(files[i]).isDirectory(path.join(cwd, files[i]))){ var cur = fs.readdirSync(path.join(cwd, files[i])); for(var j in cur){

好的,我有这个代码

var cwd = __dirname;
var files = fs.readdirSync(__dirname);
for(var i in files){
    if(fs.lstatSync(files[i]).isDirectory(path.join(cwd, files[i]))){
        var cur = fs.readdirSync(path.join(cwd, files[i]));
        for(var j in cur){
            files.push(path.join(files[i], cur[j]));
        }
    }
}
console.log(files);

此代码检查
文件[i]
的路径是否为目录,如果是,则获取该目录的内容并将其存储在变量
cur
中。然后它解析
cur
,并将其内容添加到
文件中。但是,当它记录
文件时,我会得到目录。这是因为
for
循环仅在循环启动时获取
文件的内容吗?有没有办法使循环更新到
文件的当前内容

for in
只获取进入循环之前存在的索引

您可以在使用
的同时使用

var i=0
while (files[i]){
    if(fs.lstatSync(files[i]).isDirectory(path.join(cwd, files[i]))){
        var cur = fs.readdirSync(path.join(cwd, files[i]));
        for(var j in cur){
            files.push(path.join(files[i], cur[j]));
        }
    }
    i++
}