原始数据:

最终得到的数据:

具体实现代码:倒推(最后一个数据)的思路得到数组
- function childData(list,i){
- const arr = []
- //最后一个数组
- if(i
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 []
- }
- }