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"
                }
            ]
        }
    ]
    

      

  • 相关阅读:
    小木虫等论坛自动签到程序发布
    第一篇随笔
    工作和兴趣哪个更重要?
    weblogic 启动时 报错
    C#动态调用webservice (转载)
    U盘加载,卸载,拔出,插入(转载)
    Simple zip archive unzipper(转载)
    Best C# Blogs(强烈推荐)
    数据无法导入ArcSDE
    Oracle10.2.0.1.0升级Oracle10.2.0.2.0补丁安装指南(转载)
  • 原文地址:https://www.cnblogs.com/na-w/p/14985210.html
Copyright © 2011-2022 走看看