js递归 过滤树形数据

场景:一个级联数据当我们需要过滤到满足条件的数据,并且返回的过滤数据还要满足树形结构


   // 开始分析
   async startAnalysis(): Promise {
//  树结构数据
     const nodes=[];
       const data = this.filterTree(nodes);
     console.log(data );
   }

   filterTree(tree): any {
       const result = [];
       for (const item of tree) {
           const res = this.heplFun(item);
           if (res) {
               result.push(res);
           }
       }

       return result;
   }

   heplFun(item): any {
// 判断条件地方
       if (item.isShowList) {
           return item;
       }
       const curent = { ...item, children: [] };
       if (item.children && item.children.length > 0) {
           for (const child of item.children) {
               const res2 = this.heplFun(child);
               if (res2) {
                   curent.children.push(res2);
               }
           }
       }
       return curent.children.length > 0 ? curent : null;
   }

你可能感兴趣的:(js递归 过滤树形数据)