IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端 扁平化数据和树形数据互转 -> 正文阅读

[JavaScript知识库]前端 扁平化数据和树形数据互转

// label 区域名称
// level 等级0代表省级 1代表市区 2代表县级
// PId 父级的code
// code 当前code
list1: [
        { label: "浙江省", level: 0, PId: 0, code: 330000 },
        { label: "杭州市", level: 1, PId: 330000, code: 330100 },
        { label: "宁波市", level: 1, PId: 330000, code: 330200 },
        { label: "温州市", level: 1, PId: 330000, code: 330300 },
        { label: "嘉兴市", level: 1, PId: 330000, code: 330400 },
        { label: "湖州市", level: 1, PId: 330000, code: 330500 },
        { label: "上城区", level: 2, PId: 330100, code: 330102 },
        { label: "下城区", level: 2, PId: 330100, code: 330103 },
        { label: "江干区", level: 2, PId: 330100, code: 330104 },
        { label: "河南省", level: 0, PId: 0, code: 410000 },
        { label: "郑州市", level: 1, PId: 410000, code: 410100 },
        { label: "开封市", level: 1, PId: 410000, code: 410200 },
        { label: "陕西省", level: 0, PId: 0, code: 715200 },
        { label: "西安市", level: 1, PId: 715200, code: 715201 },
        { label: "咸阳市", level: 1, PId: 715200, code: 715202 },
        { label: "宝鸡市", level: 1, PId: 715200, code: 715203 },
        { label: "铜川市", level: 1, PId: 715200, code: 715204 },
        { label: "渭南市", level: 1, PId: 715200, code: 715205 },
        { label: "延安市", level: 1, PId: 715200, code: 715206 },
        { label: "澄城县", level: 2, PId: 715205, code: 715250 },
        { label: "富平县", level: 2, PId: 715205, code: 715250 },
        { label: "蒲城县", level: 2, PId: 715205, code: 715250 },
      ],
  mounted() {
    let data = this.listToTree(this.list1);
    let data1 = this.treeToList(data);
    window.console.log(data, "skkccccccccc", data1);
  },
methods: {
    // 将扁平化数据处理为树形数据
    // 当前的PId等于父级的code
    listToTree(data) {
      return data.filter((parentItem) => {
        // 每一级的数据filterD
        const filterD = data.filter((item) => {
          return parentItem.code === item.PId;
        });
        //
        // 取filterD长度大于0 的
        filterD.length > 0 ? (parentItem.children = filterD) : "";
        // 只取PId为0的,也就是最顶层
        return parentItem.PId === 0;
      });
    },
    // 将树形数据处理为扁平化数据(多级) 用递归
    treeToList(data) {
      var list = [];
      const funChild = (childData) => {
        childData.forEach((element) => {
          element.children && element.children.length > 0
            ? funChild(element.children)
            : ""; //子级递归
          delete element.children;//删除children 根据需求看是否需要删除
          list.push(element);
        });
      };
      funChild(data);
      window.console.log(data, list);
      return list;
    },
  }

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:48:02  更:2022-05-10 11:50:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:20:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码