@supuwoerc/toolkit
    Preparing search index...

    Function dfs

    • 深度优先遍历树结构 Depth-first traversal of tree structure

      Type Parameters

      • T = TreeNode

        树节点类型 Tree node type

      • K extends string = "children"

        子节点属性键名类型 Children property key name type

      Parameters

      • tree: Tree<T, K>

        要遍历的树根节点 Root node of the tree to traverse

      • callback: (node: Tree<T, K>) => boolean | void

        遍历回调函数,返回false可中断遍历 Traversal callback function, return false to break the traversal

      • OptionalchildrenKey: K = ...

        子节点属性键名,默认为'children' Children property key name, defaults to 'children'

      Returns void

      interface MyNode {
      id: number;
      name: string;
      children?: MyNode[];
      }

      const tree: MyNode = {
      id: 1,
      name: 'root',
      children: [
      { id: 2, name: 'child1' },
      { id: 3, name: 'child2', children: [{ id: 4, name: 'grandchild' }] }
      ]
      };

      dfs(tree, (node) => {
      console.log(node.name);
      // 返回false可中断遍历
      // Return false to break traversal
      // if (node.id === 3) return false;
      }, 'children');