traverse
Traverse n-tree with strategy. The default strategy is bfs
.
Types
ts
type TreeNode<Key extends string = 'children'> = {
[p in Key]?: TreeNode<Key>[];
}
type TraverseCallback<Node = TreeNode> = (node: Node, pNode?: Node) => void
type TraverseOptions = {
strategy?: 'bfs' | 'pre' | 'post'
property?: string
}
function traverse<TNode = TreeNode>(
root: TNode,
callback: TraverseCallback<typeof root>,
options?: TraverseOptions,
): void
Example
Bfs as default
js
import { traverse } from '@a-tools/n-tree'
const root = { children: [] }
traverse(root, (cur, parent) => {
console.log(cur, parent)
})
ts
import { traverse } from '@a-tools/n-tree'
const root = { children: [] }
traverse(root, (cur, parent) => {
console.log(cur, parent)
})
Specified strategy
js
import { traverse } from '@a-tools/n-tree'
const root = { children: [] }
traverse(root, (cur, parent) => {
console.log(cur, parent)
}, { strategy: 'pre' })
ts
import { traverse } from '@a-tools/n-tree'
const root = { children: [] }
traverse(root, (cur, parent) => {
console.log(cur, parent)
}, { strategy: 'pre' })
Specified child property
js
import { traverse } from '@a-tools/n-tree'
const root = { child: [] }
traverse(root, (cur, parent) => {
console.log(cur, parent)
}, { property: 'child' })
ts
import { traverse } from '@a-tools/n-tree'
type TreeNode = { child?: TreeNode }
const root: TreeNode = { child: [] }
traverse<TreeNode>(root, (cur, parent) => {
console.log(cur, parent)
}, { property: 'child' })