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
  • 相关阅读:
    bzoj1731 [Usaco2005 dec]Layout 排队布局
    loj10087 Intervals
    差分约束小结
    bzoj1112 [POI2008]砖块Klo
    bzoj3524 [POI2014]Couriers
    poj2752 Seek the Name, Seek the Fame
    1027C Minimum Value Rectangle
    bzoj2212 [POI2011]Tree Rotations
    bzoj3747 [POI2015]Kinoman
    628D Magic Numbers
  • 原文地址:https://www.cnblogs.com/qc-one/p/14691391.html
Copyright © 2011-2022 走看看