js扁平数组转换树形结构

下面展示一些 内联代码片

// A code block
var foo = 'bar';
// An highlighted block
var tree= [
    {
        "id":1,
        "name":"个人档案",
        "code":"personal",
        "sort_index":1,
        "parent_code":"",
        "create_time":1535622519220,
        "update_time":1535622519220,
        "create_user":1,
        "update_user":1,
        "url":"",
        "icon":"iconpaper_plane_fill",
        "target":"personalFrame"
    },
    {
        "id":5,
        "name":"监测",
        "code":"monitor",
        "sort_index":2,
        "parent_code":"",
        "create_time":1535622519344,
        "update_time":1535622519344,
        "create_user":1,
        "update_user":1,
        "url":"",
        "icon":"iconxitong",
        "target":"monitorFrame"
    },
    {
        "id":10,
        "name":"应用管理",
        "code":"device",
        "sort_index":3,
        "parent_code":"",
        "create_time":1535622519470,
        "update_time":1535622519470,
        "create_user":1,
        "update_user":1,
        "url":"",
        "icon":"icon2-1peizhiguanli",
        "target":"deviceFrame"
    },
    {
        "id":16,
        "name":"业务管理",
        "code":"business",
        "sort_index":4,
        "parent_code":"",
        "create_time":1535622519612,
        "update_time":1535622519612,
        "create_user":1,
        "update_user":1,
        "url":"",
        "icon":"iconweibiaoti-4",
        "target":"businessFrame"
    },

    {
        "id":6,
        "name":"图表统计",
        "code":"chartStatistic",
        "sort_index":1,
        "parent_id":5,
        "parent_code":"monitor",
        "create_time":1535622519368,
        "update_time":1535622519368,
        "create_user":1,
        "update_user":1,
        "url":"/diagramInfo",
        "icon":"el-icon-ship",
        "target":""
    },
    {
        "id":43,
        "name":"连接异常",
        "code":"connarmrecord",
        "sort_index":2,
        "parent_id":27,
        "parent_code":"exception",
        "create_time":1535622519959,
        "update_time":1535622519959,
        "create_user":1,
        "update_user":1,
        "url":"/linkRecord",
        "icon":"el-icon-s-ticket",
        "target":""
    },
    {
        "id":8,
        "name":"数据监测",
        "code":"dataMonitor",
        "sort_index":3,
        "parent_id":5,
        "parent_code":"monitor",
        "create_time":1535622519417,
        "update_time":1535622519417,
        "create_user":1,
        "update_user":1,
        "url":"/platInfer",
        "icon":"el-icon-basketball",
        "target":""
    },
    {
        "id":30,
        "name":"下载历史数据",
        "code":"download",
        "sort_index":1,
        "parent_id":29,
        "parent_code":"count",
        "create_time":1535622520002,
        "update_time":1535622520002,
        "create_user":1,
        "update_user":1,
        "url":"/dataforms",
        "icon":"el-icon-s-open",
        "target":""
    },
    {
        "id":14,
        "name":"扩展属性",
        "code":"extend",
        "sort_index":4,
        "parent_id":10,
        "parent_code":"device",
        "create_time":1535622519558,
        "update_time":1535622519558,
        "create_user":1,
        "update_user":1,
        "url":"/extendSet",
        "icon":"el-icon-fork-spoon",
        "target":""
    },
    {
        "id":47,
        "name":"转发设置",
        "code":"forwarding",
        "sort_index":7,
        "parent_id":37,
        "parent_code":"sys",
        "create_time":1535622519959,
        "update_time":1535622519959,
        "create_user":1,
        "update_user":1,
        "url":"/forwarding",
        "icon":"el-icon-sell"
    },
    {
        "id":18,
        "name":"冰箱",
        "code":"fridge",
        "sort_index":2,
        "parent_id":16,
        "parent_code":"business",
        "create_time":1535622519684,
        "update_time":1535622519684,
        "create_user":1,
        "update_user":1,
        "url":"/refrigerator",
        "icon":"el-icon-coffee-cup",
        "target":""
    },
    {
        "id":23,
        "name":"网关路由",
        "code":"gateway",
        "sort_index":2,
        "parent_id":21,
        "parent_code":"eq",
        "create_time":1535622519790,
        "update_time":1535622519790,
        "create_user":1,
        "update_user":1,
        "url":"/gateway",
        "icon":"el-icon-s-order",
        "target":""
    },
    {
        "id":9,
        "name":"列表监测",
        "code":"gridMonitor",
        "sort_index":4,
        "parent_id":5,
        "parent_code":"monitor",
        "create_time":1535622519442,
        "update_time":1535622519442,
        "create_user":1,
        "update_user":1,
        "url":"/listingInfer",
        "icon":"el-icon-mobile-phone",
        "target":""
    },
    {
        "id":17,
        "name":"保温箱",
        "code":"incubator",
        "sort_index":1,
        "parent_id":16,
        "parent_code":"business",
        "create_time":1535622519646,
        "update_time":1535622519646,
        "create_user":1,
        "update_user":1,
        "url":"/incubator",
        "icon":"el-icon-tableware",
        "target":""
    },
    {
        "id":15,
        "name":"维护设置",
        "code":"maintain",
        "sort_index":5,
        "parent_id":10,
        "parent_code":"device",
        "create_time":1535622519576,
        "update_time":1535622519576,
        "create_user":1,
        "update_user":1,
        "url":"/maintainSet",
        "icon":"el-icon-refrigerator",
        "target":""
    },
    {
        "id":7,
        "name":"传感器监测配置",
        "code":"monitorInstance",
        "sort_index":2,
        "parent_id":5,
        "parent_code":"monitor",
        "create_time":1535622519398,
        "update_time":1535622519398,
        "create_user":1,
        "update_user":1,
        "url":"/inferInstance",
        "icon":"el-icon-wind-power",
        "target":""
    },
    {
        "id":13,
        "name":"监测区间",
        "code":"monitorRange",
        "sort_index":3,
        "parent_id":10,
        "parent_code":"device",
        "create_time":1535622519543,
        "update_time":1535622519543,
        "create_user":1,
        "update_user":1,
        "url":"/detection",
        "icon":"el-icon-truck",
        "target":""
    },
    {
        "id":48,
        "name":"MQTT连接设置",
        "code":"mqttManager",
        "sort_index":8,
        "parent_id":37,
        "parent_code":"sys",
        "create_time":1535622519959,
        "update_time":1535622519959,
        "create_user":1,
        "update_user":1,
        "url":"/mqtt",
        "icon":"el-icon-guide"
    },
    {
        "id":35,
        "name":"系统日志",
        "code":"noticelog",
        "sort_index":1,
        "parent_id":34,
        "parent_code":"log",
        "create_time":1535622520158,
        "update_time":1535622520158,
        "create_user":1,
        "update_user":1,
        "url":"/notification",
        "icon":"el-icon-c-scale-to-original",
        "target":""
    },
    {
        "id":36,
        "name":"操作日志",
        "code":"operatelog",
        "sort_index":2,
        "parent_id":34,
        "parent_code":"log",
        "create_time":1535622520183,
        "update_time":1535622520183,
        "create_user":1,
        "update_user":1,
        "url":"/operationlog",
        "icon":"el-icon-document-copy",
        "target":""
    },
    {
        "id":44,
        "name":"网关断电异常",
        "code":"outagearmrecord",
        "sort_index":3,
        "parent_id":27,
        "parent_code":"exception",
        "create_time":1535622519959,
        "update_time":1535622519959,
        "create_user":1,
        "update_user":1,
        "url":"/outageRecord",
        "icon":"el-icon-s-management",
        "target":""
    },
    {
        "id":39,
        "name":"参数设置",
        "code":"param",
        "sort_index":2,
        "parent_id":37,
        "parent_code":"sys",
        "create_time":1535622520265,
        "update_time":1535622520265,
        "create_user":1,
        "update_user":1,
        "url":"/paramsetup",
        "icon":"el-icon-attract",
        "target":""
    },
    {
        "id":2,
        "name":"修改个人资料",
        "code":"personalinfo",
        "sort_index":1,
        "parent_id":1,
        "parent_code":"personal",
        "create_time":1535622519250,
        "update_time":1535622519250,
        "create_user":1,
        "update_user":1,
        "url":"/material",
        "icon":"el-icon-user",
        "target":""
    },
    {
        "id":3,
        "name":"修改密码",
        "code":"personalpwd",
        "sort_index":2,
        "parent_id":1,
        "parent_code":"personal",
        "create_time":1535622519276,
        "update_time":1535622519276,
        "create_user":1,
        "update_user":1,
        "url":"/cipher",
        "icon":"el-icon-s-tools",
        "target":""
    },
    {
        "id":45,
        "name":"接口管理",
        "code":"queryInterface",
        "sort_index":6,
        "parent_id":37,
        "parent_code":"sys",
        "create_time":1535622519959,
        "update_time":1535622519959,
        "create_user":1,
        "update_user":1,
        "url":"/portadmin",
        "icon":"el-icon-files",
        "target":""
    },
    {
        "id":20,
        "name":"冷库",
        "code":"refrigeratory",
        "sort_index":4,
        "parent_id":16,
        "parent_code":"business",
        "create_time":1535622519719,
        "update_time":1535622519719,
        "create_user":1,
        "update_user":1,
        "url":"/refrigeratory",
        "icon":"el-icon-s-cooperation",
        "target":""
    },
    {
        "id":33,
        "name":"角色权限",
        "code":"roleright",
        "sort_index":2,
        "parent_id":31,
        "parent_code":"account",
        "create_time":1535622520090,
        "update_time":1535622520090,
        "create_user":1,
        "update_user":1,
        "url":"/userLimits",
        "icon":"el-icon-share",
        "target":""
    },
    {
        "id":11,
        "name":"架构",
        "code":"scene",
        "sort_index":1,
        "parent_id":10,
        "parent_code":"device",
        "create_time":1535622519501,
        "update_time":1535622519501,
        "create_user":1,
        "update_user":1,
        "url":"/architecture",
        "icon":"el-icon-bicycle",
        "target":""
    },
    {
        "id":22,
        "name":"传感器",
        "code":"sensor",
        "sort_index":1,
        "parent_id":21,
        "parent_code":"eq",
        "create_time":1535622519754,
        "update_time":1535622519754,
        "create_user":1,
        "update_user":1,
        "url":"/sensor",
        "icon":"el-icon-s-cooperation",
        "target":""
    },
    {
        "id":42,
        "name":"传感器配置",
        "code":"sensorConfig",
        "sort_index":5,
        "parent_id":37,
        "parent_code":"sys",
        "create_time":1535622520342,
        "update_time":1535622520342,
        "create_user":1,
        "update_user":1,
        "url":"/sensorsetup",
        "icon":"el-icon-data-analysis",
        "target":""
    },



];

JavaScript

// A code block
var foo = 'bar';
    this.arrayToTree(tree)
    arrayToTree(array) {
      var map = {} //存着每一个层级的引用,以id为key,方便查找
      var treeList= []
      for (var i = 0; i < array.length; i++) {
        var obj = array[i]
        var clone = JSON.parse(JSON.stringify(obj))

        // 判断没有parent_id 属性的是一级父节点
        if (obj.parent_id == undefined) {
          result.push(clone)
        }
        map[clone.id] = clone
        if (map[clone.parent_id]) {
          if (!map[clone.parent_id].children) map[clone.parent_id].children = []
          map[clone.parent_id].children.push(clone)
       
        }
      }
      return treeList
    },
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值