示例代码:
const action = (data:any) => {
if(!data || data.length <= 0){
return null;
}
const rootItems = data.filter((item:any) => {
return !data.find((subItem:any) => subItem['wid'] == item['pid']);
});
const tree = rootItems.map((item:any) => ({
...item,
children: getChildren(item['wid'], data).length > 0 ? getChildren(item['wid'], data) : null
}));
return tree;
function getChildren(pid:any,data11:any) {
return data11.filter((item:any) => {
return item['pid'] == pid;
}).map((child:any) => ({
...child,
children: getChildren(child['wid'], data11).length > 0 ? getChildren(child['wid'], data11) : null
}));
}
}
效果展示: