zoukankan      html  css  js  c++  java
  • 父子关系的数组和树形结构数据相互转化

    父子关系的数组和树形结构数据相互转化

    /**
     * @description 父子关系的数组转换成树形结构数据
     * @param data
     * @returns {*}
     */
    export function translateDataToTree(data) {
      const parent = data.filter(
        (value) => value.parentId === "undefined" || value.parentId == null
      );
      const children = data.filter(
        (value) => value.parentId !== "undefined" && value.parentId != null
      );
      const translator = (parent, children) => {
        parent.forEach((parent) => {
          children.forEach((current, index) => {
            if (current.parentId === parent.id) {
              const temp = JSON.parse(JSON.stringify(children));
              temp.splice(index, 1);
              translator([current], temp);
              typeof parent.children !== "undefined"
                ? parent.children.push(current)
                : (parent.children = [current]);
            }
          });
        });
      };
      translator(parent, children);
      return parent;
    }
    
    /**
     * @description 树形结构数据转换成父子关系的数组
     * @param data
     * @returns {[]}
     */
    export function translateTreeToData(data) {
      const result = [];
      data.forEach((item) => {
        const loop = (data) => {
          result.push({
            id: data.id,
            name: data.name,
            parentId: data.parentId,
          });
          const child = data.children;
          if (child) {
            for (let i = 0; i < child.length; i++) {
              loop(child[i]);
            }
          }
        };
        loop(item);
      });
      return result;
    }
    

    参考:

    https://github.com/chuzhixin/vue-admin-beautiful

    顺便推荐一下这个vue-admin-beautiful,一款基于vue+element-ui的绝佳的中后台前端开发管理框架(基于vue/cli 4 最新版,同时支持电脑,手机,平板),他同时是拥有100+页面的大型vue前端单页应用。

  • 相关阅读:
    2015新年说点啥
    How to debug the CPU usage 100
    C# Keyword usage virtual + override VS new
    Getting out of your comfort zone.
    Resource for learning Algos
    深圳五险一金缴纳比例
    HashSet/List 排序
    DataGrid 刷新选中问题
    WPF常用代码:Visual Logical Tree
    WPF常用代码:依赖属性
  • 原文地址:https://www.cnblogs.com/codebook/p/13340547.html
Copyright © 2011-2022 走看看