Home > @zero-dim/utils > treeToArray
treeToArray() function
将树形结构数据转换为扁平数组
Signature:
typescript
export declare function treeToArray<T>(tree: Array<any>): Array<T>;
Parameters
Parameter | Type | Description |
---|---|---|
tree | Array<any> | 树形结构数据,每个节点可以包含 children 属性 |
Array<T>
扁平化后的节点数组,不包含 children 字段
Exceptions
如果输入的树结构包含循环引用,可能会导致栈溢出
Remarks
- 会移除原始数据中的 children 字段 - 保留节点的所有其他属性 - 深度优先遍历,子节点在父节点之前
Example
ts
// 基础示例
const tree = [
{
id: 1,
name: '父节点1',
children: [
{ id: 2, name: '子节点1' },
{ id: 3, name: '子节点2' }
]
},
{
id: 4,
name: '父节点2',
children: [
{ id: 5, name: '子节点3' }
]
}
]
const array = treeToArray(tree)
// 输出结果:
// [
// { id: 2, name: '子节点1' },
// { id: 3, name: '子节点2' },
// { id: 1, name: '父节点1' },
// { id: 5, name: '子节点3' },
// { id: 4, name: '父节点2' }
// ]
// 复杂属性示例
const complexTree = [
{
id: 1,
data: { value: 100 },
children: [
{
id: 2,
data: { value: 200 }
}
]
}
]
const result = treeToArray(complexTree)
// 输出结果保留了复杂属性:
// [
// { id: 2, data: { value: 200 } },
// { id: 1, data: { value: 100 } }
// ]