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))
}
}
有没有有效的方法做到以上?