函数: transformArrayToTreeList()
ts
function transformArrayToTreeList<T>(
sNodes,
child?,
id?,
pid?): T[];定义于: tree.ts:302
将带父子引用(id / pid)的一维数组还原为树形结构(一级数组 → 多级树)。
与 transformTreeToArrayList 互为逆操作。
类型参数
| 类型参数 | 默认类型 |
|---|---|
T | any |
参数
| 参数 | 类型 | 描述 |
|---|---|---|
sNodes | T[] | 待转换的一维数组 |
child | keyof T | 生成的子级集合字段名,默认 'children' |
id | keyof T | 数组项唯一主键字段名,默认 'id' |
pid | keyof 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 },
// ]