JavaScript之遞迴的簡單使用

阿威ztw發表於2020-12-01

遞迴是什麼

何為遞迴?程式反覆呼叫自身即是遞迴。遞迴是一個反覆呼叫自身的過程,這就說明它每一級的功能都是一樣的,因此我們只需要關注一級遞迴的解決過程即可。

遞迴三要素

  • 明確遞迴終止條件。
  • 給出遞迴終止時的處理辦法。
  • 提取重複的邏輯,縮小問題規模

遞迴的簡單使用

一 : 後臺返回資料巢狀資料型別轉換為陣列

在這裡插入圖片描述

// 遞迴拿到部門陣列
    recursion(data){
      for (const i in data) {
        this.deptArr.push(data[i])
        if (data[i].children.length>0) {
          this.ccc(data[i].children)
        }
      }
    },
二 : 後臺返回同級加巢狀資料型別轉換為巢狀樹形資料

在這裡插入圖片描述

recursion(data) {
      for (const i in data) {
        data[i].dept.children = [...data[i].nextLayerDepts, ...data[i].users]; //同一級塞下一級
        data[i].dept.scopedSlots = { title: "title" };
        data[i].dept.key = data[i].dept.code;
        data[i].dept.children.forEach((element,index) => {
          element.scopedSlots = { title: "title" };
          element.key = element.code;
          if(element.dept){
          data[i].dept.children[index] = element.dept;
//            console.log(element.dept)
          }
        });
        if (data[i].nextLayerDepts.length > 0) {
          this.aaa(data[i].nextLayerDepts);
        }
        data[i] = data[i].dept;
      }
      this.treeData=data;
    },

相關文章