有一树状数据结构;假设有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}
不存在递归无法跳出的情况, 所有递归都能改成循环, 都可以跳出
添加回答
举报
0/150
提交
取消