function handleTree(data, id, parentId) { // 递归处理树形结构
id = id || 'id'
parentId = parentId || 'parentId'
rootId = 0
//对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
//循环所有项
const treeData = cloneData.filter(father => {
let branchArr = cloneData.filter(child => {
//返回每一项的子级数组
return father[id] === child[parentId]
});
branchArr.length > 0 ? father.children = branchArr : '';
//返回第一层
return father[parentId] === rootId;
});
return treeData != '' ? treeData : data;
};
let arr = [
{id: 1, name: '部门1', pid: 0},
{id: 2, name: '部门2', pid: 1},
{id: 3, name: '部门3', pid: 1},
{id: 4, name: '部门4', pid: 1},
{id: 5, name: '部门5', pid: 4},
];
handleTree(arr, 'id', 'pid')
递归处理树形结构
最新推荐文章于 2023-10-28 18:41:56 发布