# 数据

需求描述起来很简单,有这样一个数组:

let industry_list = [
  {
    parent_ind: "家电",
    name: "洗衣机",
  },
  {
    name: "家电",
  },
  {
    parent_ind: "家电",
    name: "电冰箱",
  },
  {
    parent_ind: "女装",
    name: "连衣裙",
  },
  {
    name: "女装",
  },
  {
    parent_ind: "女装",
    name: "半身裙",
  },
  {
    parent_ind: "女装",
    name: "A字裙",
  },
  {
    parent_ind: "数码",
    name: "电脑配件",
  },
  {
    name: "数码",
  },
  {
    parent_ind: "电脑配件",
    name: "内存",
  },
  {
    parent_ind: "内存",
    name: "xxxxx",
  },
  {
    parent_ind: "xxxxx",
    name: "demo",
  },
];


最终得到这样一个对象:

{"家电":{"洗衣机":{},"电冰箱":{}},"女装":{"连衣裙":{},"半身裙":{},"A字裙":{}},"数码":{"电脑配件":{"内存":{"xxxxx":{"demo":{}}}}}}

# 编码实现

function format(data) {
  const result = {}
  const middle = {};
  data.map(i => {
    middle[i.name] = i.parent_ind ? i.parent_ind : {};
  });
  for (let name in middle) {
    const parent = middle[name];
    if (typeof parent === "object") {
      result[name] = middle[name];
    } else {
      middle[name] = {};
      middle[parent][name] = middle[name];
    
    }
  }
  return result;
}