初始化数据:
var json = [
{id:1,parent:0,name:'上海市'},
{id:2,parent:1,name:'宝山区'},
{id:3,parent:1,name:'黄浦区'},
{id:4,parent:1,name:'浦东新区'},
{id:5,parent:0,name:'北京市'},
{id:6,parent:5,name:'海淀区'},
{id:7,parent:2,name:'宜山路'}
]
递归方法:
function changeData(data, id) {
const result = [];
let temp = [];
for (let i =0;i < data.length;i++) {
if (data[i].parent === id) {
const obj = {'title': data[i].name,'children':temp};
temp =this.changeData(data, data[i].id);
obj.children =temp
result.push(obj)
}
}
return result
}
调用输出:
console.log(changeData(json,0));
[
{
title:'上海市',
children:[
{
title:'宝山区',
children:[
{title:'宜山路',children:[]}
]
},
{title:'黄浦区',children:[]},
{title:'浦东新区',children:[]}
]
},
{
title:'北京市',
children:[
{title:'海淀区',children:[]}
]
}
]