【发布时间】:2020-08-12 05:47:25
【问题描述】:
我正在尝试通读目录结构和子目录以查找名称与一组条件匹配的文件。我正在使用递归函数遍历目录中的每个项目。如果它是一个文件并且符合条件,则返回文件路径,否则,继续下一项。
我可以在找到匹配项时记录它,但在尝试从函数返回时得到 UNDEFINED。
here 和 here 等许多 SO 帖子表明我需要在递归调用中添加 return 语句,但我似乎无法正确处理。
如何从这个函数返回?
function checkForProjectTrackFile(projfolder, projname) {
fs.readdirSync(projfolder).forEach(projfile => {
if (fs.statSync(path.join(projfolder, projfile)).isDirectory()) {
//if a directory, call function again
return checkForProjectTrackFile(path.join(projfolder, projfile), projname)
} else {
if (isProjectTrackMatch(projfile, projname)) {
console.log("Match Found", path.join(projfolder, projfile))
//match criteria met, return the file path => UNDEFINED
return (path.join(projfolder, projfile))
}
}
})
}
【问题讨论】:
标签: javascript recursion return-value