1 回答
TA贡献1830条经验 获得超9个赞
var v = [
{ "name": "a" },
{ "name": "a.b" },
{ "name": "a.b.c" },
{ "name": "a.b.d" },
{ "name": "f" },
{ "name": "f.g" },
{ "name": "f.g.h" },
{ "name": "f.g.i" }
]; //v 好序,不好序先排序
m = {};
v.forEach(o=>{
l = o["name"].split('.');
t = m;
l.forEach(obj=>{
if(t[obj] === undefined)t[obj] = {};
t = t[obj];
});
})
//递归
function f(m){
var res = [];
var k = [];
for(var key in m){
k.push(key);
}
for(var i in k){
var obj = {"name": k[i]};
if(Object.keys(m[k[i]]).length !== 0)obj.children = f(m[k[i]]);
res.push(obj);
}
return res;
}
r = f(m);
添加回答
举报
