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