当前位置: 首页 > news >正文

前端将传回的List数据组织成树形数据并展示

前端将List传回的数据组织成树形数据并展示

系列文章指路👉
系列文章-基于Vue3创建前端项目并引入、配置常用的库和工具类

文章目录

  • List数据示例
  • 组织数据
  • html
  • 展示

List数据示例

let dataArray = [{rootNode: true, parentId: null, id: '001', title: '父目录'},{rootNode: false, parentId: '001', id: '0011', title: '子目录1'},{rootNode: false, parentId: '0011', id: '0011-001', title: '孙目录1'},{rootNode: false, parentId: '0011-001', id: '0011-001-01', title: 'testName01'},{rootNode: false, parentId: '0011-001', id: '0011-001-02', title: 'testName02'},{rootNode: false, parentId: '0011', id: '0011-002', title: '孙目录2'},{rootNode: false, parentId: '0011', id: '0011-003', title: '孙目录3'},{rootNode: false, parentId: '001', id: '0012', title: '子目录2'},{rootNode: false, parentId: '001', id: '0013', title: '子目录3'},
]

组织数据

let treeData = buildTree(dataArray)
function buildTree(dataArray) {// 1. 创建ID到节点的映射(同时初始化children数组)const nodeMap = new Map();dataArray.forEach(dataObject => {nodeMap.set(dataObject.id,{parentId: dataObject.parentId,id: dataObject.id,rootNode: dataObject.rootNode,title: dataObject.title,children: []});});// 2. 构建树形结构const tree = [];for (const node of nodeMap.values()) {if (!node.rootNode) {// 查找父节点const parent = nodeMap.get(node.parentId);// 如果找到父节点,则将当前节点加入其childrenif (parent){parent.children.push(node);}} else {// 根节点node.expand = truetree.push(node);}}console.log(dataArray);console.log(tree);return tree;
}

html

<div style="margin-top: 40px"><a-tree:tree-data="treeData"></a-tree></div>

展示

在这里插入图片描述

http://www.dtcms.com/a/278441.html

相关文章:

  • MEMS IMU如何赋能无人机与机器人精准感知?
  • 跨膜粘蛋白MUC17
  • MAC安装虚拟机
  • UE5多人MOBA+GAS 22、创建技能图标UI,实现显示蓝耗,冷却,以及数字显示的倒数计时还有雷达显示的倒数计时
  • IDEA中使用Servlet,tomcat输出中文乱码
  • ubuntu22.04下配置qt5.15.17开发环境
  • Kotlin委托
  • 【Python】基础语法
  • 亚马逊新规!7月13日起合规性文件须出自符合要求的实验室!
  • 【飞牛云fnOS】告别数据孤岛:飞牛云fnOS私人资料管家
  • 【Hadoop科普篇】大数据怎么处理?Hadoop是什么?跟HDFS, Spark, Flink, Hive, Hbase是什么关系?
  • 嵌入式硬件篇---晶体管的分类
  • 大数据系列之:通过trino查询hive表
  • [Nagios Core] struct监控对象 | 配置.cfg加载为内存模型
  • Kotlin集合接口
  • HTTP 四种常见方法
  • 基于Hadoop的竞赛网站日志数据分析与可视化(上)
  • 基于hadoop的竞赛网站日志数据分析与可视化(下)
  • 神经网络与深度学习Python入门
  • 构建高效事件驱动架构:AWS S3与SQS集成实践指南
  • 实战:如何创建 AWS RDS 数据库
  • 显示器核心三要素详解:刷新率、分辨率、色深
  • 【JAVA】监听windows中鼠标侧面键的按钮按下事件
  • Web 前端面试
  • redis实现红锁
  • (1-7-3)数据库的基本查询
  • 【React Native】Switch、Alert、Dimensions、StatusBar、Image组件
  • 打破数据孤岛!医疗数据如何实现“可用不可见”?
  • OpenVela之开发自测试框架cmocka
  • 深入解析ThreadLocal:线程隔离的奥秘与内存泄漏解决方案