zoukankan      html  css  js  c++  java
  • 将数组元素中有关系的父子节点组合

    假设后端同学通过接口向前端返回了天猫的行业信息,例如:
    industry_list = [
    {
    "parent_ind" : "女装",
    "name" : "连衣裙"
    },
    {
    "name": "女装"
    },
    {
    "parent_ind" : "女装",
    "name" : "半身裙"
    },
    {
    "parent_ind" : "女装",
    "name" : "A字裙"
    },
    {
    "name": "数码"
    },
    {
    "parent_ind" : "数码",
    "name": "电脑配件"
    },
    {
    "parent_ind" : "电脑配件",
    "name": "内存"
    },
    ]

    为了取用方便,我们希望可以将其转换为树状格式,例如:
    {
    "数码": {
    "电脑配件": {
    "内存" : {}
    }
    },
    "女装" : {
    "连衣裙": {},
    "半身裙": {},
    "A字裙": {}
    }
    }

      function convert_format(data) {
                let map = new Map();
                for (let i = 0; i < data.length; i++) {
                    let name = data[i].name;
                    map.set(name, map.get(name) || {});
                    // 父节点存入map
                    let parentId = data[i].parent_ind || "root";
                    let parent = map.get(parentId) || {};
                    // 为父节点添加当前节点
                    parent[name] = map.get(name);
                    map.set(parentId, parent);
                }
                return map.get("root");
            }

    Talk is cheap,show me the code
  • 相关阅读:
    C++中的指针和数组
    windows系统下JDK1.6环境变量配置
    Java Reflection (JAVA反射)
    转载:cin深入分析(下) – cin的错误处理
    OpenGL总结
    OpenGL纹理
    c/C++内存分配
    转载:cin深入分析(上) – cin输入操作处理
    c++中string的用法
    OpenGL颜色
  • 原文地址:https://www.cnblogs.com/qc-one/p/14691391.html
Copyright © 2011-2022 走看看