原始数据:
最终得到的数据:
具体实现代码:倒推(最后一个数据)的思路得到数组
function childData(list,i){
const arr = []
//最后一个数组
if(i<list.length){
list[i].forEach(item=>{
const obj = {
name:'',
prop:'',
child:[]
}
obj['name'] = item
obj['prop'] = item
obj['child'] = []
arr.push(obj)
})
}
return arr
}
function transListDataToTreeData(list,i) {
//共n条数据
const arr = list[i] // 第一层数组 1
if(arr){
const news = []
arr.forEach(item=>{
let obj = {
name:item,
prop:item,
child:[]
}
const child = childData(list,i+1)
if(child.length > 0){
obj.child = transListDataToTreeData(list,i+1)
}else{
obj.child = child
}
news.push(obj)
})
return news
}else{
return []
}
}