函数: transformTreeToArrayList()
ts
function transformTreeToArrayList<T>(
classifyList,
id?,
key?,
children?): T[];定义于: tree.ts:257
将树形数组「拍平」为一维数组:深度优先展开所有层级,并为每个子节点写入指向其父级的 key 字段。
与 transformArrayToTreeList 互为逆操作。
类型参数
| 类型参数 | 默认类型 |
|---|---|
T | any |
参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
classifyList | T[] | undefined | 树形数组 |
id | keyof T | ... | 关联的主键字段名,默认 'id'(作为子节点父级引用的取值来源) |
key | string | 'pid' | 写入子节点、指向父级 id 的字段名,默认 'pid' |
children | keyof 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 },
// ]