属性数据处理递归函数
var arr = [
{ id: '29', pid: '', name: '总裁办' },
{ id: '2c', pid: '', name: '财务部' },
{ id: '2d', pid: '2c', name: '财务核算部' },
{ id: '2f', pid: '2c', name: '薪资管理部' },
{ id: 'd2', pid: '', name: '技术部' },
{ id: 'd3', pid: 'd2', name: 'Java研发部' },
]`
export function toDo(arr, pid = '') {
/* 得到处理之后的树形数据 */
var newArr = []
/* 1-循环数组 */
arr.forEach((item) => {
if (item.pid === pid) {
/* 3-收集不是第一层的 */
var child = toDo(arr, item.id)
if (child.length) {
item.children = child
}
/* 2-筛选第一层 */
newArr.push(item)
}
})
return newArr
}