( parent: Node, visitFn: (parent: Node) => void, childrenFn: (parent: Node) => Node[] | undefined | null )
| 9 | } |
| 10 | |
| 11 | function visit( |
| 12 | parent: Node, |
| 13 | visitFn: (parent: Node) => void, |
| 14 | childrenFn: (parent: Node) => Node[] | undefined | null |
| 15 | ) { |
| 16 | if (!parent) return; |
| 17 | |
| 18 | visitFn(parent); |
| 19 | |
| 20 | const children = childrenFn(parent); |
| 21 | if (children) { |
| 22 | const count = children.length; |
| 23 | for (let i = 0; i < count; i++) { |
| 24 | visit(children[i], visitFn, childrenFn); |
| 25 | } |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | function getNode(tree: Node, key: string): Node | null { |
| 30 | let node = null; |