You need to enable JavaScript to run this app. JavaScript递归调用时传入的字符串参数变为undefined问题排查
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript递归调用时传入的字符串参数变为undefined问题排查

问题原因分析
  • 核心错误是向右移动的递归调用分支参数传参顺序错误:
    你定义的函数形参顺序为function mazePath(start,end,n,m,count,output),共6个入参,按顺序第5位是count、第6位是路径字符串output。
    你写的向右移动递归调用mazePath(start,end+1,n,m,output+"R");仅传了5个参数:错误把output+"R"放到了第5位count的参数位,原本第6位的output没有传值,默认就是undefined。
  • 后续递归中会对未传值的output做字符串拼接,就会出现undefinedD这类错误拼接结果。
修复方案

把向右移动的递归调用补全count参数即可,修改后代码如下:

// 向下移动的递归调用保留不变
mazePath(start+1,end,n,m,count,output+"D");
// 向右移动的递归调用补全count参数,把路径拼接值放到第6位
mazePath(start,end+1,n,m,count,output+"R");
验证结果

修改后运行会输出正确的所有路径:

DD
DRD
DRR
RDD
RDR
RR
 Total path is 6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:12:00