我有一个需要一个节点和一个对象的函数。较大的对象可能具有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;
}
}
关于javascript - 用递归中断循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52011731/