zoukankan      html  css  js  c++  java
  • 递归列表

    let list = [
        {
          actiontype: "Add,Delete,Edit,Show",
          description: "",
          icon: "",
          menucode: "00",
          menuname: "商品管理",
          menupath: "",
          menutype: "main",
          parentcode: "",
          sortby: "1",
        },
        {
          actiontype: "Add,Delete,Edit,Show",
          description: "",
          icon: "",
          menucode: "0001",
          menuname: "商品维度",
          menupath: "WaresManage/WaresDimension",
          menutype: "main",
          parentcode: "00",
          sortby: "1",
        },
        {
          actiontype: "Add,Delete,Edit,Show",
          description: "",
          icon: "",
          menucode: "0002",
          menuname: "商品品类",
          menupath: "WaresManage/WaresCategories",
          menutype: "main",
          parentcode: "00",
          sortby: "2",
        }
      ]
    
      const toTree = (data) => {
        var map = {};
        data.forEach(function (item) {
            map[item.menucode] = item;
        });
        console.log(map)
        var val = [];
        data.forEach(function (item) {
            var parent = map[item.parentcode];
            console.log(parent, item)
            if (parent) {
                (parent.children || ( parent.children = [] )).push(item);
            } else {
                //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级
                val.push(item);
            }
        });
        return val;
    }
    
    let menus = toTree(list);
    
    
    修改后结果如下:
    menues: [
        {
            "actiontype": "Add,Delete,Edit,Show",
            "description": "",
            "icon": "",
            "menucode": "00",
            "menuname": "商品管理",
            "menupath": "",
            "menutype": "main",
            "parentcode": "",
            "sortby": "1",
            "children": [
                {
                    "actiontype": "Add,Delete,Edit,Show",
                    "description": "",
                    "icon": "",
                    "menucode": "0001",
                    "menuname": "商品维度",
                    "menupath": "WaresManage/WaresDimension",
                    "menutype": "main",
                    "parentcode": "00",
                    "sortby": "1"
                },
                {
                    "actiontype": "Add,Delete,Edit,Show",
                    "description": "",
                    "icon": "",
                    "menucode": "0002",
                    "menuname": "商品品类",
                    "menupath": "WaresManage/WaresCategories",
                    "menutype": "main",
                    "parentcode": "00",
                    "sortby": "2"
                }
            ]
        }
    ]
    

      

  • 相关阅读:
    java常用英文解释
    干货——myeclipse快捷键
    上海面试经常遇到的事务安全问题
    2016java技术岗面试题
    Echarts 获取后台数据 使用后台数据展示 柱形图
    JS实现的MAP结构数据
    Spring MVC 返回json数据 报406错误 问题解决方案
    junit 注意事项,切记
    JNDI中 java:comp/env 的理解
    JMS发布/订阅消息传送例子
  • 原文地址:https://www.cnblogs.com/na-w/p/14985210.html
Copyright © 2011-2022 走看看