由数据转为树杈的js 和由一个子节点的id获取所有的父类的id

 1  familyTree(arr1, id) {
 2       var temp = []
 3       var forFn = function (arr, id) {
 4         for (var i = 0; i < arr.length; i++) {
 5           var item = arr[i]
 6           if (item.id === id) {
 7             temp.push(item)
 8             forFn(arr1, item.parent_id)
 9             break
10           } else {
11             if (item.children) {
12               forFn(item.children, id)
13             }
14           }
15         }
16       }
17       forFn(arr1, id)
18       return temp
19     },
View Code

一个子节点的id获取所有的父类的id

由数据转为树杈的js

1  treeData(list) {
2       //树杈生成器
3       let cloneData = JSON.parse(JSON.stringify(list))    // 对源数据深度克隆
4       return cloneData.filter(father => {
5         let branchArr = cloneData.filter(child => father.id == child.parent_id)    //返回每一项的子级数组
6         branchArr.length > 0 ? father.children = branchArr : ''   //如果存在子级,则给父级添加一个children属性,并赋值
7         return father.parent_id == 0;      //返回第一层
8       });
9     }
View Code

 

posted @ 2020-12-04 09:45  肥龙啃锅盔  阅读(119)  评论(0编辑  收藏  举报