返回不会退出 javascript 中的递归函数
Return doesn't exit recursive function in javascript
我已经阅读了关于这个问题的十几种变体,但这些答案并没有让我得出一个明显的错误。 为什么这总是返回false
? 为什么即使在found it
后我也能看到called again
? 如果我在递归调用前面放一个return
,为什么我看不到found it
?
function subResult (object, start, target){
console.log('called again')
if (start === target){
console.log('found it')
return true
} else {
for (var i = 0; i < object[start].edges.length; i++){
subResult(object, object[start].edges[i], target)
}
}
return false
}
更改
for (var i = 0; i < object[start].edges.length; i++){
subResult(object, object[start].edges[i], target)
}
自
for (var i = 0; i < object[start].edges.length; i++){
if (subResult(object, object[start].edges[i], target)) {
return true;
}
}
即当发现你完成时。如果没有,请继续前进。
相关文章:
- 返回不会退出 javascript 中的递归函数
- Javascript递归函数引用了这一点
- jQuery递归函数调用和Javascript之间有区别吗;s setInterval
- 从javascript中的递归函数获取undefined
- 将递归函数转换为异步 CPS 实现 (javascript)
- 在Javascript的递归函数中使用正则表达式进行解析
- 寻找关于改进我的javascript(jquery)代码的想法.递归函数
- JavaScript:递归函数不能正常工作
- 递归函数在javascript中不返回Label
- Javascript:递归函数返回现有值的未定义
- 如何在 javascript 中获取递归函数来输出每个返回值
- 为什么这个递归的javascript函数返回它的作用
- JavaScript递归函数错误答案
- JavaScript递归函数中的错误
- 如何在 JavaScript 中停止递归函数
- JavaScript + 递归函数返回 undefined
- JavaScript 返回递归函数
- Javascript 递归函数性能下降
- 在递归函数 JavaScript 上获取未定义的返回
- 将参数传递给递归函数javaScript