为了账号安全,请及时绑定邮箱和手机立即绑定

如何跳出递归?

如何跳出递归?

慕码人2483693 2019-01-05 18:12:14
有一树状数据结构;假设有5个分支;现在我要找到一个节点;该结点在第一个分支的第三层;怎在找到这个节点后后面的树都不遍历了?也就是跳出整个递归?我写了一个简单的测试发现并不能跳出递归var arr = [[1,2],[3,4]]const deep = (arr) => {    for (let i = 0; i < arr.length; i++) {        if (Array.isArray(arr[i])) {             deep(arr[i])         } else {            console.log(arr[i])            if (arr[i] === 2) return          }     } } deep(arr)还是说递归本身是无法中断的?
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

给你的deep函数添加一个返回值, 然后循环的时候判断这个值

const deep = arr => {    for (let i = 0; i < arr.length; i++) {        if (Array.isArray(arr[i])) {            if(deep(arr[i]))                return true
        } else {            console.log(arr[i])            if (arr[i] === 2) return true
        }
    }    return false}

不存在递归无法跳出的情况, 所有递归都能改成循环, 都可以跳出


查看完整回答
反对 回复 2019-01-05
  • 1 回答
  • 0 关注
  • 1264 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信