const treeSeData = [
{ ptype_id: 0, type_id: 1, type_name: '一级分类1', ptype_name: '0', type_dept: '总公司', type_desc: '总公司', type_proc: '总公司流程', type_sel: '郑飞' },
{ ptype_id: 1, type_id: 2, type_name: '二级分类1', ptype_name: '一级分类1', type_dept: '锦源公司', type_desc: '锦源子公司', type_proc: '子公司流程', type_sel: '陆玲' },
{ ptype_id: 0, type_id: 3, type_name: '一级分类2', ptype_name: '0', type_dept: '集团公司', type_desc: '集团投资公司', type_proc: '集团投资公司', type_sel: '陈俭东' },
{ ptype_id: 3, type_id: 4, type_name: '二级分类2', ptype_name: '一级分类2', type_dept: '综合管理公司', type_desc: '综合管理公司', type_proc: '综合管理公司', type_sel: '罗文聪' },
{ ptype_id: 1, type_id: 5, type_name: '二级分类3', ptype_name: '二级分类3', type_dept: '众德公司', type_desc: '众德公司', type_proc: '众德公司', type_sel: '段军' }
]
const toTree = (data) => {
let map = {};
data.forEach(function (it) {
map[it.type_id] = it;
})
let treeData = [];
data.forEach(function (it) {
let parent = map[it.ptype_id];
if (parent) {
((parent.children) || (parent.children = [])).push(it);
} else {
treeData.push(it);
}
});
return treeData;
}
console.log(toTree(treeSeData))
function toTree(data) {
let result = []
if (!Array.isArray(data)) {
return result
}
data.forEach(item => {
delete item.children;
});
let map = {};
data.forEach(item => {
map[item.id] = item;
});
data.forEach(item => {
let parent = map[item.pid];
if (parent) {
(parent.children || (parent.children = [])).push(item);
} else {
result.push(item);
}
});
return result;
}
console.log(toTree(source)
console