码迷,mamicode.com
首页 > 其他好文 > 详细

toTree

时间:2019-01-16 16:45:47      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:const   name   div   data   function   设置   ...   递归   OLE   

// js实现树级递归,
// 通过js生成tree树形菜单(递归算法)

const data = [
  { id: 1, name: "办公管理", pid: 0 },
  { id: 2, name: "请假申请", pid: 1 },
  { id: 3, name: "出差申请", pid: 1 },
  { id: 4, name: "请假记录", pid: 2 },
  { id: 5, name: "系统设置", pid: 0 },
  { id: 6, name: "权限管理", pid: 5 },
  { id: 7, name: "用户角色", pid: 6 },
  { id: 8, name: "菜单设置", pid: 6 },
  ];


function toTree(data){
  const map = {};
  data.forEach(item => {
    map[item.id] = {...item};
  });
  const result= [];
  data.forEach((item)=>{
    const parent = map[item.pid];
    if(parent){
      if(!parent.children) parent.children =[];
      parent.children.push(item);
    }else{
      result.push(item);
    }
  })
  return result;
}
console.log(toTree(data));

 

toTree

标签:const   name   div   data   function   设置   ...   递归   OLE   

原文地址:https://www.cnblogs.com/shangyueyue/p/10277245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!