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

递归处理字面量对象返回2个数组的函数返回undefined原因排查

问题原因分析

核心问题是递归调用分支缺少return语句,逻辑说明如下:

  • JavaScript 函数默认规则:如果没有显式执行return语句,函数返回值为undefined
  • 你的代码中仅在「所有内容处理完成」的分支写了return,仅最内层的递归调用会走到这个分支
  • 当函数走到「仍有未处理部分」的分支时,你只发起了递归调用,但没有把递归函数的返回值向外传递,外层函数执行完没有任何返回动作,所以顶层调用拿到的结果就是undefined
修复方案

把递归调用行修改为返回递归结果即可:

if (初始对象仍有未处理部分){
  // 新增return,把递归结果逐层向外传递
  return filterObject(untreatedObject, a1, a2);
}
else if (所有内容处理完成){
  console.log(a1)
  console.log(a2)
  return { a: a1, b: a2};
}

修复后顶层调用即可正常拿到返回的数组对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:45:05