Javascript 无法从目录中递归获取所有文本文件名
我试图以递归方式从目录中获取所有文本文件(即搜索所有子文件夹): 但是,当我调用Javascript 无法从目录中递归获取所有文本文件名,javascript,node.js,recursion,Javascript,Node.js,Recursion,我试图以递归方式从目录中获取所有文本文件(即搜索所有子文件夹): 但是,当我调用getPathNames(“.”)时,我只得到第一个文件的名称 如果我将返回值从函数中取出,并更新一个全局变量,则效果良好: let fs = require("fs"); let pathNames = []; function getPathNames(dirName) { for (let fileName of fs.readdirSync(dirName)) { let path
getPathNames(“.”
)时,我只得到第一个文件的名称
如果我将返回值从函数中取出,并更新一个全局变量,则效果良好:
let fs = require("fs");
let pathNames = [];
function getPathNames(dirName) {
for (let fileName of fs.readdirSync(dirName)) {
let pathName = dirName + "/" + fileName;
if (fs.statSync(pathName).isDirectory())
getPathNames(pathName);
else if (pathName.endsWith(".txt"))
pathNames.push(pathName);
}
}
有人发现第一个方法有什么错误吗?嗯,不是就地突变,而是返回一个新数组,所以我想说你应该这样做
pathNames = pathNames.concat(getPathNames(pathName));
在第一种方法中,在关联结果后,应该将值存储在
路径名中。
pathNames = pathNames.concat(getPathNames(pathName));