Skip to content

函数: transformArrayToTreeList()

ts
function transformArrayToTreeList<T>(
   sNodes, 
   child?, 
   id?, 
   pid?): T[];

定义于: tree.ts:302

将带父子引用(id / pid)的一维数组还原为树形结构(一级数组 → 多级树)。

transformTreeToArrayList 互为逆操作。

类型参数

类型参数默认类型
Tany

参数

参数类型描述
sNodesT[]待转换的一维数组
childkeyof T生成的子级集合字段名,默认 'children'
idkeyof T数组项唯一主键字段名,默认 'id'
pidkeyof T指向父级 id 的字段名,默认 'pid'

返回值

T[]

组装后的树形数组

备注

非原地操作:内部先经 deepClone 深拷贝再处理,不会给调用方的原始数据写入 children 字段。

若原数组的节点上已存在名为 child 的字段,会抛出错误(提示更换该参数)。

示例

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

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