首页 > 其他分享 >如何将正常数据转为树结构

如何将正常数据转为树结构

时间:2023-10-23 14:44:21浏览次数:36  
标签:map const 树结构 list 节点 item 正常 转为 id

listToTree(list) {
   const result = [] // 用于存放结果
   const map = {} // 用于存放 list 下的节点

   // 1. 遍历 list,将 list 下的所有节点以 id 作为索引存入 map
   for (const item of list) {
     map[item.id] = { ...item } // 浅拷贝
   }

   // 2. 再次遍历,将根节点放入最外层,子节点放入父节点
   for (const item of list) {
     // 3. 获取节点的 id 和 父 id
     const { id, parentId } = item // ES6 解构赋值
     // 4. 如果是根节点,存入 result
     if (item.parentId == 0) {
       result.push(map[id])
     } else {
       // 5. 反之,存入到父节点
       map[parentId].children
         ? map[parentId].children.push(map[id])
         : (map[parentId].children = [map[id]])
     }
   }
   return result
 },

const tree = this.listToTree(response.data)
console.log('====tree====', tree)

标签:map,const,树结构,list,节点,item,正常,转为,id
From: https://www.cnblogs.com/baozhengrui/p/17782361.html

相关文章

  • java后端操作树结构
    一、树结构的三种组装方式(递归.双层for循环,map)(1)递归普通递归方法publicResultgetBmsMenuList(UserSessionVOuserSessionInfo){//查询顶级节点菜单List<BmsMenuVO>bmsMenuVOList=bmsMenuDao.selectBmsMenuList(newBmsMenuQueryConditionVO());......
  • 记录--谁还没个靠bug才能正常运行的程序
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近遇到一个问题,计算滚动距离,滚动比例达到某界定值时,显示mask,很常见吧^ _ ^这里讲的不是这个需求的实现,是其中遇到了一个比较有意思的bug,靠这个bug才达到了正确效果,以及这个bug是如何暴露的(很重要)。下面是演示......
  • TC10 异常退出无法正常使用一例分析
    1.主要现象,客户TC系统正常使用,近期未做bmide和itk代码部署更新,突然频繁出现“tcserver.exe异常崩溃”造成TC无法使用。2.尝试解决的处理2.1登录系统,使用dba账户进行可能异常的操作,发现异常无法准确复现,各种操作都可能会出现:查询、创建、展开BOM、搜索引用等。 2.2登录查看日......
  • c#中string字符串转为json对象
    string转json//字符串转jsonpublicstaticvoidstrJson(){stringjsonText="{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"......
  • 【Java】Vert.x Jackson 序列化后日期数据正常展示
    有段时间没有更新了,年尾嘛大家都懂的。其实最近有个想法,想将自己的vtx_fw框架给开源了。但开源之前还是有很多收尾的工作需要做的(总不能让各位笑话吧o(╥﹏╥)o),这不今天就发现了一个问题,立刻就归纳一下给各位分享。这个问题就是Vert.x框架中日期类型数据在Jackson序列化下的......
  • sqlplus本地登录报错,远程可以正常登录
    问题描述:  sqlplus本地登录报错,如下:   sqlplus/asssydba   ERROR:   ORA-12547:TNS:lostcontact原因分析:   首先确保数据库实例正常运行:   srvctlstatusdatabase-dDB_UNIQUE_NAME   ps-ef|greppmon    查看ORACLE_H......
  • CSDN、掘金、简书博客文章如何转为Markdown?
    1.在CSDN博文页面点击右键,选择“检查”(Google浏览器为例)。 2.在查看器中搜索“article_content”,找到对应内容,点击…复制为outerHTML。  3.打开网址https://tool.lu/markdown/,点击HTML2MD,粘贴html代码,转换成Markdown。 4.大功告成,同理操作掘金、简书或其他平台上博......
  • iptables 正常用法
    #!/bin/baship1=${group_host1}ip2=${group_host2}ip3=${group_host3}ip4=${group_host4}ip5=${group_host5}iptables-F#清空所有的防火墙规则iptables-X#删除用户自定义的空链iptables-Z#清空计数iptables-AINPUT-ptcp--dport22-jACCEPTiptables-AIN......
  • Sqoop不能正常导出文件到Mysql数据库的问题解决
    之前在使用sqoop输入以下命令时bin/sqoopexport\--connectjdbc:mysql://node1:3306/journal\--usernameroot\--password123456\--tabletop_courses_by_traffic\--export-dir/user/hive/warehouse/journal.db/top_courses_by_traffic--input-fields-terminated-......
  • jks格式证书转为cer格式
    1、确保系统上安装了JavaDevelopmentKit(JDK),并将其路径添加到环境变量中。2、使用以下命令导出JKS证书的私钥和证书链到PKCS12格式的文件:keytool-importkeystore-srckeystoreyour_certificate.jks-srcstorepassyour_password-destkeystorecertificate.p12-deststorety......