首页 > 其他分享 >js 树结构转换普通列表和普通列表转换树结构

js 树结构转换普通列表和普通列表转换树结构

时间:2023-05-29 09:23:31浏览次数:39  
标签:转换 树结构 res tree 列表 item source parentId

const rootList = [
            { id: 1, name: "父级", parentId: 0 },
            { id: 2, name: "子级", parentId: 1 },
            { id: 3, name: "子级", parentId: 1 }
        ]
        // 普通列表转换树结构
        function dataToTree(source, parentId = 0) {
            let tree = [];
            source.forEach((item) => {
                if (item.parentId === parentId) {
                    // 递归寻找
                    item.children = dataToTree(source, item.id);
                    tree.push(item);
                }
            });

            return tree;
        }
        let res = dataToTree(rootList)

        // 树结构转换普通列表
        const tree = function (source) {
            let res = []
            source.forEach(item => {
                if (item.children) {
                    res.push(item, ...tree(item.children))
                    delete item.children
                } else {
                    res.push(item)
                }
            })
            return res
        }
        let result = tree(res)
        console.log(result)

标签:转换,树结构,res,tree,列表,item,source,parentId
From: https://www.cnblogs.com/mtr-coder/p/17439473.html

相关文章

  • 盘点一个Python列表的基础题目
    大家好,我是皮皮。一、前言前几天在Python最强王者群【eric】问了一个Python列表基础的问题,这里拿出来给大家分享下。代码如下:list1=[['TDD','(38套)'],['2TR','(23套)'],['FDD','(18套)']]现在想通过Python程序,得到目标string1,代码应该怎么操作呢?string1="TDD(3......
  • Python中列表(List)元组(Tuple)集合(Set)的区别和适用场景
    在Python中,列表(List)和元组(Tuple)都是序列类型的数据结构。它们具有相似的特性,如可以通过下标访问元素、支持切片操作等。而集合(Set)则是一个无序的集合类型。下面是它们各自的特点和适用场景:列表(List):有序的序列类型。可以存储任意类型的对象,并且可以动态地修改元素。适用于需......
  • 转换mod为除法
    Problem-B-Codeforces对于最后一句话:“>的个数是bn/m"因为0<=bi+1-bi<m,那么找>就是找有多少个点bi/m从x到x+1(0->1,1->2类似于这样子的),那么这样子到n时前面就有bn/m个这样子的点 #include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"typedeflonglo......
  • 相关子查询(由不相关子查询转换思想)
    查询本部门最高工资的员工信息:emp:员工信息表deptno:部门号 sal:员工薪水不相关其中几条:select*fromempewheree.deptno=10andsal=(selectmax(sal)fromempwheredeptno=10)uninoselect*fromempewheree.deptno=20andsal=(selectmax(sal)fromempwher......
  • php数值转换函数
    PHP提供了很多用于数值转换的函数,其中最常见的是intval()、floatval()和strval()。intval()函数可以将一个变量的值转换为整数。如果变量是浮点数,则会将其截断成整数;如果变量是字符串,则会尝试将其转换成整数。floatval()函数则可以将变量的值转换为浮点数。如果变量本身就是一个......
  • webpack-loader-使用babel-loader转换处理高级的js语法
    webpack只能打包处理一部分高级的JavaScript语法。对于那些webpack无法处理的高级js语法,需要借助于babel-loader进行打包处理。例如webpack无法处理下面的JavaScript代码://定义装饰器函数functioninfo(target){target.info='Personinfo.'}//定义一个普通的类@info......
  • 【React工作记录七十二】时间秒转换为毫秒
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语歌谣时间秒转换为毫秒编辑 核心代码getTim......
  • python输出列表索引
    输出列表索引列表的索引输出方法较为简单>>>a=[1,2,3,4,5,6]>>>a.index(2)1>>>#此处的列表a是一个没有重复元素的列表,所以输出的2索引就是1(因为python)的索引是从0开始计起>>>#假如对于一个列表中指定的元素不单一,输出的结果是怎么样的>>>b=[11,2,11,12,33,12]>......
  • 非Teams会议组织者如何导出参会列表
    需求背景通常来说,只有会议的组织者才能够从Teams客户端导出Teams会议的参会人列表,或者需要Teams管理员从后台导出。而在某些情况下,需要非Teams会议组织者协助导出次列表,那么我们可以使用Teams会议的共同组织者(Co-organizer)功能来实现这个需求。概念解释邀请他人参加会议后,您最多......
  • cartographer代码——世界坐标系点和像素坐标系点的转换
    构建栅格地图,要弄清楚坐标之间的关系。本篇根据代码,画出了坐标转换的关系。如下图:cartographer中的代码如下://Returnstheindexofthecellcontainingthe'point'whichmaybeoutside//themap,i.e.,negativeortoolargeindicesthatwillreturnfalsefo......