# 数据
需求描述起来很简单,有这样一个数组:
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;
}