flatTree
树形结构转扁平数组
引入版本
0.30.0
Demo
ts
import { flatTree } from '@wyfex/iutils'
/**
* ================== 基础树扁平化 ==================
*/
const data1 = [
{
level: 0,
name: '顶部',
children: [
{
level: 1,
name: '子项',
children: [{ level: 2, name: '孙项' }]
}
]
}
]
console.log(JSON.stringify(flatTree(data1), null, 2))
// [
// {
// "level": 0,
// "name": "顶部"
// },
// {
// "level": 1,
// "name": "子项"
// },
// {
// "level": 2,
// "name": "孙项"
// }
// ]
const data2 = [
{
id: 1,
parentId: 0,
children: [{ id: 2, parentId: 1 }]
}
]
console.log(JSON.stringify(flatTree(data2), null, 2))
// [
// {
// "id": 1,
// "parentId": 0
// },
// {
// "id": 2,
// "parentId": 1
// }
// ]
const data3 = [
{
uid: 1,
pid: 0,
name: '父节点1',
children: [
{
uid: 2,
pid: 1,
name: '子节点A'
},
{
uid: 3,
pid: 1,
name: '子节点B'
}
]
},
{
uid: 4,
pid: 0,
name: '父节点2'
}
]
console.log(JSON.stringify(flatTree(data3), null, 2))
// [
// {
// "uid": 1,
// "pid": 0,
// "name": "父节点1"
// },
// {
// "uid": 2,
// "pid": 1,
// "name": "子节点A"
// },
// {
// "uid": 3,
// "pid": 1,
// "name": "子节点B"
// },
// {
// "uid": 4,
// "pid": 0,
// "name": "父节点2"
// }
// ]
/**
* ================== 自定义 children 字段) ==================
*/
const data4 = [
{
id: 1,
kids: [{ id: 2 }]
}
]
console.log(JSON.stringify(flatTree(data4, { childrenKey: 'kids' }), null, 2))
// [
// {
// "id": 1
// },
// {
// "id": 2
// }
// ]