递归数组

 let arr = [
        {
          id: 1,
          name: "父类1",
          pid: 0
        },
        {
          id: 2,
          name: "父类2",
          pid: 0
        },
        {
          id: 3,
          name: "父类3",
          pid: 0
        },
        {
          id: 4,
          name: "子类1-1",
          pid: 1
        },
        {
          id: 5,
          name: "子类1-2",
          pid: 1
        },
        {
          id: 6,
          name: "子类1-1-1",
          pid: 4
        },
        {
          id: 6,
          name: "子类1-1-2",
          pid: 4
        },
        {
          id: 8,
          name: "子类1-1-2-1",
          pid: 6
        },
        {
          id: 7,
          name: "子类2-1",
          pid: 2
        }
      ];
将arr排序为父子关系;父级id等于子集Pid
function digui(arr, pid) {
        arr.forEach((v, i) => {
          let child = [];
          if (v.pid == 0) {
            a.push(v);
          } else {
            let index = arr.findIndex(item1 => item1.id === v.pid);
            if (index !== -1) {
              arr[index].child = arr[index].child || [];
              arr[index].child.push(v);
            }
          }
        });
        return arr.filter(item => item.pid == 0);
      }

   let result = [];
      routerRules.forEach((v, i) => {
        v.lable = v.meta.title;
        delete v.meta.title;
        i += 1;
        v.id = i;
        result.push(v);
        if (v.hasOwnProperty("children")) {
            findChild(v.children, i);
          // f2(v.children, i);
        }
      });

 function findChild(arr, i) {
        if (Object.prototype.toString.call(arr) == "[object Array]") {
          let key = 1;
          for (const iterator of arr) {
            if (Object.prototype.toString.call(iterator) == "[object Object]") {
              if (iterator.hasOwnProperty("meta")) {
                iterator.label = iterator.meta.title;
                iterator.id = `${i}-${key++}`;
              }
              delete iterator.meta;
              delete iterator.path;
              delete iterator.component;
              if (iterator.hasOwnProperty("children")) {
                findChild(iterator.children, iterator.id);
              }
            }
          }
        }
      }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容