buildTree
递归建树
示例
js
const output = buildTree(input, { parentId: '0', idKey: 'id', parentIdKey: 'parentId' })
js
// input:
[
{ id: '1', parentId: '0' },
{ id: '1-1', parentId: '1' },
{ id: '1-1-1', parentId: '1-1' },
{ id: '1-2', parentId: '1' },
{ id: '1-2-1', parentId: '1-2' },
{ id: '1-2-2', parentId: '1-2' },
{ id: '1-3', parentId: '1' },
{ id: '1-3-1', parentId: '1-3' },
{ id: '1-3-2', parentId: '1-3' },
{ id: '1-3-3', parentId: '1-3' },
{ id: '2', parentId: '0' },
{ id: '2-1', parentId: '2' },
{ id: '2-1-1', parentId: '2-1' },
{ id: '2-2', parentId: '2' },
{ id: '2-2-1', parentId: '2-2' },
{ id: '2-2-2', parentId: '2-2' },
{ id: '2-3', parentId: '2' },
{ id: '2-3-1', parentId: '2-3' },
{ id: '2-3-2', parentId: '2-3' },
{ id: '2-3-3', parentId: '2-3' }
];
// output:
[
{
id: '1',
parentId: '0',
children: [
{
id: '1-1',
parentId: '1',
children: [{ id: '1-1-1', parentId: '1-1' }]
},
{
id: '1-2',
parentId: '1',
children: [
{ id: '1-2-1', parentId: '1-2' },
{ id: '1-2-2', parentId: '1-2' }
]
},
{
id: '1-3',
parentId: '1',
children: [
{ id: '1-3-1', parentId: '1-3' },
{ id: '1-3-2', parentId: '1-3' },
{ id: '1-3-3', parentId: '1-3' }
]
}
]
},
{
id: '2',
parentId: '0',
children: [
{
id: '2-1',
parentId: '2',
children: [{ id: '2-1-1', parentId: '2-1' }]
},
{
id: '2-2',
parentId: '2',
children: [
{ id: '2-2-1', parentId: '2-2' },
{ id: '2-2-2', parentId: '2-2' }
]
},
{
id: '2-3',
parentId: '2',
children: [
{ id: '2-3-1', parentId: '2-3' },
{ id: '2-3-2', parentId: '2-3' },
{ id: '2-3-3', parentId: '2-3' }
]
}
]
}
]
参数
名称 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
list | 需要建树的数据 | Array | - | - |
options | 参数配置 | BuildTreeOptions | - | - |
BuildTreeOptions
名称 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
parentId | 顶级节点 id 值 | string | number | - | "0" |
idKey | 节点 id 名 | string | - | "id" |
parentIdKey | 父节点 id 名 | string | - | "parentId" |
返回值
(Array): 返回树结构数据