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

原生JS实现嵌套评论递归查找函数返回undefined如何解决

问题原因
  • forEach 回调的return仅能终止当前单次回调的执行,无法中断整个遍历流程,也不能将返回值传递给外层的recursiveSearch函数;同时你在递归调用recursiveSearch(response, target)时没有接收返回值,就算深层嵌套中找到了目标对象,也无法将结果赋值给外层的result变量,最终导致函数返回undefined。
修复代码

推荐改用for...of循环实现,匹配到目标后可以直接中断遍历,性能更优:

const recursiveSearch = (object, target) => {
    // 根节点匹配直接返回
    if (object.id === target) return object;

    let result;
    if (object.responses.length > 0) {
        for (const response of object.responses) {
            // 当前层级匹配
            if (response.id === target) {
                result = response;
                break;
            }
            // 有子回复则递归查找,接收返回值
            if (response.responses.length > 0) {
                const deepMatch = recursiveSearch(response, target);
                if (deepMatch) {
                    result = deepMatch;
                    break;
                }
            }
        }
    }
    return result;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:01