美文网首页
reduce处理树形结构数据

reduce处理树形结构数据

作者: 近一亿 | 来源:发表于2020-06-12 15:51 被阅读0次

直接上代码

var data = [{

                id: 1,

                name: "办公管理",

                pid: 0,

                children: [{

                        id: 2,

                        name: "请假申请",

                        pid: 1,

                        children: [

                            { id: 4, name: "请假记录", pid: 2 },

                        ],

                    },

                    { id: 3, name: "出差申请", pid: 1 },

                ]

            },

            {

                id: 5,

                name: "系统设置",

                pid: 0,

                children: [{

                    id: 6,

                    name: "权限管理",

                    pid: 5,

                    children: [

                        { id: 7, name: "用户角色", pid: 6 },

                        { id: 8, name: "菜单设置", pid: 6 },

                    ]

                }, ]

            },

        ];

1.0:将树形结构处理为扁平数组

const arr = data.reduce(function(pre,item){

            const callee = arguments.callee //将运行函数赋值给一个变量备用

            pre.push(item)

            if(item.children && item.children.length > 0) item.children.reduce(callee,pre); //判断当前参数中是否存在children,有则递归处理

            return pre;

        },[]).map((item) => {

            item.children = []

            return item

        })

        console.log(arr)

2.0:将扁平数组处理为树形结构

let result = arr.reduce(function(prev, item) {

            prev[item.pid] ? prev[item.pid].push(item) : prev[item.pid] = [item];

            return prev;

        }, {});

        console.log(result)

        for (let prop in result) {

            result[prop].forEach(function(item, i) {

                result[item.id] ? item.children = result[item.id] : ''

            });

        }

        result = result[0];

        console.log(result)

相关文章

  • reduce处理树形结构数据

    直接上代码 1.0:将树形结构处理为扁平数组 2.0:将扁平数组处理为树形结构

  • 列行数据处理成树形结构数据

    语言 Java实现内容是一列数据中pid关联父级关系处理成树形结构数据 数据结构 方法 调用formatData(...

  • vue树形组件实现思路

    效果图如下: 父组件调用树形组件代码: 父组件要做的主要步骤: 引入树形组件 父组件获取的数据结构如下,把数据处理...

  • 树形结构数据处理,反向控制树形结构状态

    遇到这样的情况,一侧是树形结构,另一侧是选中的数据,当点击另一侧选中数据的删除按钮时候,不仅要删除数据,还要将一侧...

  • java 递归处理树形结构数据

    在实战开发中经常有需要处理树形菜单、树形目录等等等业务需求。而对于这种产品,在设计数据库时也建议使用id<----...

  • java 递归处理树形结构数据

    在实战开发中经常有需要处理树形菜单、树形目录等等等业务需求。而对于这种产品,在设计数据库时也建议使用id<----...

  • 数据处理-返回树形结构

    相关业务:多级菜单、地区树、资源树等 实现原理:构建出业务相关的树对象,将数据库查询出的业务数据组装成树对象列表,...

  • js 处理树形结构数据 方法

    把表结构转树结构 根据子节点id 查找到子节点对象 查找id 的树 级联路径数组findTreeRouteArra...

  • 通过递归生成树形结构数据

    如下数据: 生成树结构代码: 转换后的数据: 根据树形数据生成树形文档

  • 树形结构(一):二叉树

    树形结构是指数据元素之间存在“一对多”(One-to-Many)的树形对应关系而形成的一类数据结构,树形结构是一类...

网友评论

      本文标题:reduce处理树形结构数据

      本文链接:https://www.haomeiwen.com/subject/vbxntktx.html