3
我已经阅读了关于这个问题的十几个变体,但这些答案并没有导致我必须是一个明显的错误。为什么总是返回false
?为什么在found it
之后看到called again
?如果我在递归调用前加上return
,为什么我看不到found it
?返回不退出JavaScript中的递归函数
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
}
哇,就是这样。非常感谢。所以我说的是“如果递归调用返回true,返回true”?我真的认为完成第一个“返回true”然后返回递归调用就足够了(如在Abu Hanifa的答案中),但这只会导致“false”总是返回。 – rswerve