簡體   English   中英

返回不會退出javascript中的遞歸函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM