[英]Return doesn't exit recursive function in javascript
我已經閱讀了這個問題的十幾個變種,但這些答案並沒有讓我知道一個明顯的錯誤。 為什么這總是返回false
? 為什么我found it
后再看到called again
found it
? 如果我把一個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;
}
}
即,當你找到你的時候。 如果不繼續。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.