You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js递归查找sales.json路径问题:原代码为何无法正常工作?

递归遍历文件时的结果合并问题

原代码的核心问题是没有合并递归调用返回的子目录结果:
当函数遍历到子目录时,虽然异步调用了readMe(${folder}/${item.name})去遍历子目录,但这个递归调用返回的子目录内的sales.json路径数组,并没有被添加到当前函数的result数组中。当前函数的result只收集了当前目录下符合条件的文件路径,子目录里的结果完全被丢弃,所以最终输出的数组只会包含根目录(stores)下的sales.json,子目录中的文件路径都不会被纳入。

修改后的代码result.push(... await readMe(${folder}/${item.name}))解决了这个问题:
这里利用扩展运算符...,把递归调用子目录得到的所有sales.json路径逐个展开,添加到当前的result数组中。每一层递归都会将自身目录下的结果与子目录返回的结果合并,最终顶层调用readMe("stores")时,返回的result就包含了所有层级目录里的sales.json路径。

举个直观的例子:假设stores下有子目录a,a目录下有sales.json。原代码中,调用readMe("stores")时,遇到a目录会触发readMe("stores/a"),这个调用会返回["stores/a/sales.json"],但原代码没有将这个结果合并到当前的result,所以最终输出为空(如果stores根目录没有sales.json的话)。修改后,这个子目录的结果会被合并到主数组中,最终就能得到正确的路径。

内容的提问来源于stack exchange,提问作者pratik neupane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:52:01