Skip to content

函数: transformTreeToArrayList()

ts
function transformTreeToArrayList<T>(
   classifyList, 
   id?, 
   key?, 
   children?): T[];

定义于: tree.ts:257

将树形数组「拍平」为一维数组:深度优先展开所有层级,并为每个子节点写入指向其父级的 key 字段。

transformArrayToTreeList 互为逆操作。

类型参数

类型参数默认类型
Tany

参数

参数类型默认值描述
classifyListT[]undefined树形数组
idkeyof T...关联的主键字段名,默认 'id'(作为子节点父级引用的取值来源)
keystring'pid'写入子节点、指向父级 id 的字段名,默认 'pid'
childrenkeyof T...子级集合的键名,默认 'children'

返回值

T[]

拍平后的一维数组(原节点上的 children 字段仍会保留)

备注

非原地操作:内部先经 deepClone 深拷贝再处理,不会给调用方的原始数据写入 pid 或改动结构。

示例

ts
const list = [
  {
    name: 'option1', id: 1,
    children: [
      { name: 'option1.1', id: 3 },
    ],
  },
  { name: 'option2', id: 2 },
]

transformTreeToArrayList(list, 'id', 'pid', 'children')
// => [
//   { name: 'option1', id: 1, children: [{ name: 'option1.1', id: 3, pid: 1 }] },
//   { name: 'option1.1', id: 3, pid: 1 },
//   { name: 'option2', id: 2 },
// ]