簡體   English   中英

用遞歸中斷循環

[英]break for of loop with recursion

我有一個需要一個節點和一個對象的函數。 較大的對象可能具有children對象的屬性,並且是一組相似形狀的節點。 該功能在頂層,然后如果有子級,則逐一瀏覽直到找到匹配的節點。

我的console.log語句總是記錄一些內容。 但是該功能保持運行。 我相信這並沒有打破看着其余孩子的循環。

找到匹配項后,我想完全退出此功能的什么原因?

findNodeInStateHierarchy = (node, stateHierarchyNode) => {
    if (node.id === stateHierarchyNode.id) {
      console.log(stateHierarchyNode);
      return stateHierarchyNode;
    }
    else {
      if (stateHierarchyNode.children) {
        for (let child of stateHierarchyNode.children) {
          this.findNodeInStateHierarchy(node, child);
        }
      }
   }
}
findNodeInStateHierarchy = (node, stateHierarchyNode) => {
    if (node.id === stateHierarchyNode.id) {
      console.log(stateHierarchyNode);
      return stateHierarchyNode;
    } else {
      if (stateHierarchyNode.children) {
        for (let child of stateHierarchyNode.children) {
          const result = this.findNodeInStateHierarchy(node, child);
          if (result !== null) {
              return result;
          }
        }
      }
      return null;
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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