Skip to content

tree2List

tree2List方法可以把树形数据转平铺数据。

语法

javascript
tree2List(treeLike, list)

描述

tree2List方法将树形结构数据转换为平铺的数组形式。该函数使用迭代方法而非递归,避免深层树导致的栈溢出问题。时间复杂度为O(n),其中n是树中节点总数。

参数

treeLike array|object|null|undefined

  待处理的树形结构数据,可以是数组、单个对象或null/undefined。

list array (可选)

  可选的初始数组,用于累积结果,默认为空数组。

返回值

array

  包含所有节点的平铺数组。

注意事项

  • 函数使用迭代方法替代递归,避免深层树导致的栈溢出
  • 支持传入单个对象、数组或null/undefined作为输入
  • 时间复杂度为O(n),空间复杂度也为O(n)
  • 内部使用栈结构实现深度优先遍历

示例

基本用法

复杂树形结构

深层嵌套结构

浏览器兼容

此功能在所有现代浏览器中都受支持,因为它不依赖任何特定于浏览器的API。

性能考虑

  • 时间复杂度: O(n) - 其中n是树中节点总数
  • 空间复杂度: O(n) - 用于存储结果数组和内部栈
  • 使用迭代方法替代递归,避免深层树导致的栈溢出问题
  • 通过栈结构实现高效的深度优先遍历

相关函数

  • list2Tree - 将平铺数组转换为树形结构
  • treeFind - 在树形结构中查找节点
  • treeMap - 对树形结构中的每个节点执行操作
  • treeFilter - 过滤树形结构中的节点
  • dim2List - 将多维度数据转换为平铺列表