使用递归中断循环



>我有一个接受节点和对象的函数。较大的对象可能具有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;
}
}

最新更新