• 将数组元素中有关系的父子节点组合


    假设后端同学通过接口向前端返回了天猫的行业信息,例如:
    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
  • 相关阅读:
    vector容器(一)
    螺旋数组实现
    zigzag数组实现
    HDU 1496
    HDU 1381 Crazy Search
    什么叫软核,固核,硬核?
    “杜拉拉思维模式”之六:小组面试提升术
    硬件工程师电路设计必须紧记的十大要点
    面试的“群殴”宝典
    三段式状态机 [CPLD/FPGA]
  • 原文地址:https://www.cnblogs.com/qc-one/p/14691391.html
Copyright © 2020-2023  润新知