flit-kit
指南
API
NPM
指南
API
NPM
  • 总览
  • Tree

    • buildTree
    • traverseTree
    • findNode
    • getNodePath
    • normalizeChildren
    • pruneTreeDepth
    • getDescendants
    • getTreeDepth
    • flattenTree
    • renameTreeKeys
  • Number

    • animation

traverseTree Tree

作用

就地遍历树并按顺序执行回调;可写入层级,返回原数组引用。

签名

traverseTree({ tree, callback(node, level), childrenKey='children', levelKey, order='pre' })

引入

import { traverseTree } from 'flit-kit'

参数

参数类型默认值说明
treeArray<object>[]输入树
callback(node,level)=>void必填回调在原节点上执行
childrenKeystring'children'子节点字段名
levelKeystringundefined若提供则写入层级到输出节点
order`'pre''post''level'`

示例

const next = traverseTree({ tree, levelKey: 'level', callback: (node, level) => { node.tag = `L${level}` }, order: 'level' })

说明

  • 先序:当前→子;后序:子→当前;层序:按层走 BFS
  • 函数会就地修改原树节点(写入 level/tag)

复杂度

  • O(n)

返回值

  • Array<object> 原数组引用

输出

[
  {
    "id": 1,
    "parentId": null,
    "name": "A",
    "sort": 2,
    "level": 1,
    "tag": "L1",
    "children": [
      {
        "id": 2,
        "parentId": 1,
        "name": "A-1",
        "sort": 1,
        "level": 2,
        "tag": "L2",
        "children": []
      },
      {
        "id": 3,
        "parentId": 1,
        "name": "A-2",
        "sort": 2,
        "level": 2,
        "tag": "L2",
        "children": []
      }
    ]
  }
]
Prev
buildTree
Next
findNode