2
我在JavaScript中使用嵌套的對象是一個簡單的樹數據結構,樹遍歷優化
class Node {
name: "",
children: [
...Node
]
}
rootNode=[Node, Node, Node...]
現在,
我遍歷樹,並找到匹配的謂詞像所有的節點,
let result =[];
let allNodes =[];
if isArray(rootNode) {
rootNode.each(x=>{
allNodes.push(x)
});
} else {
allNodes.push(rootNode);
}
while (allNodes.length) {
let currentNode = allNodes.shift();
if (predicate(currentNode) {
result.push(currentNode);
}
if (currentNode.children.length) {
allNodes.push(addAllChild(currentNode.children))
}
}
有沒有有效的方法做到以上?