对象数组列表转成树形结构--树形结构转成列表(处理菜单)
对象数组列表转成树形结构
function listToTree(data) {let temp = {};let treeData = [];for (let i = 0; i < data.length; i++) {temp[data[i].id] = data[i];}for (let i in temp) {if (+temp[i].parentId != 0) {if (!temp[temp[i].parentId].children) {temp[temp[i].parentId].children = [];}temp[temp[i].parentId].children.push(temp[i]);} else {treeData.push(temp[i]);}}return treeData;
}
树形结构转成列表
function treeToList(data) {let res = [];const dfs = (tree) => {tree.forEach((item) => {if (item.children) {dfs(item.children);delete item.children;}res.push(item);});};dfs(data);return res;
}