数据:
const treeData = [
{id: '1', parent: null, text: '活动1'},
{id: '11', parent: '1', text: '活动1-1'},
{id: '12', parent: '1', text: '活动1-2'},
{id: '111', parent: '11', text: '活动1-1-1'},
{id: '112', parent: '11', text: '活动1-1-2'},
{id: '113', parent: '11', text: '活动1-1-3'},
{id: '122', parent: '12', text: '活动1-2-1'},
{id: '2', parent: null, text: '活动2'},
{id: '21', parent: '2', text: '活动2-1'},
]
代码:
function getTreeList(treeData, id, list){
for(const item of treeData){
if(item.parent === id){
list.push(item)
}
}
createChildren(treeData ,list)
return list
}
function createChildren(treeData ,list){
for(const i of list){
i.children = []
getTreeList(treeData, i.id, i.children)
if(i.children.length === 0){
delete i.children
}
}
}
const res = getTreeList(treeData, null, [])