【发布时间】:2017-01-14 06:09:20
【问题描述】:
我在 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))
}
}
上面有什么有效的方法吗?
【问题讨论】:
-
试试tree-node-utils。我是作者。
标签: javascript data-structures tree binary-search-tree tree-traversal