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++
}