码迷,mamicode.com
首页 > Web开发 > 详细

JS树结构转list结构

时间:2019-12-13 13:55:36      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:parentId   null   parent   node   tree   name   深度优先   树结构   节点   

树转list

    /**
     * 树转list
     */
    function treeToList(tree){
        for(var i in tree){
            var node = tree[i];
            list = [];  //结果lsit
            if (node.children.length !== 0) {  //遍历树的第一层,只有一个根结点
                //第一层加入到list中,因为根结点模块设置为虚拟结点,所以不用加入
                /*list.push({
                    id: node.id,
                    name: node.title,
                    parentId:node.parentId
                });*/
                toListDF(node.children, list, node.id);  //遍历子树,并加入到list中.
            }
        }
        return list;
    }

    /**
     * 深度优先遍历树
     * 一个递归方法
     * @params tree:要转换的树结构数据
     * @params list:保存结果的列表结构数据,初始传list = []
     * @params parentId:当前遍历节点的父级节点id,初始为null(因为根节点无parentId)
     **/
    function toListDF (tree, list, parentId) {
        for (var i in tree) { //遍历最上层
            //将当前树放入list中
            var node = tree[i];
            list.push({
                id: node.id,
                name: node.title,
                parentId:parentId
            });
            //如果有子结点,再遍历子结点
            if (node.children.length !== 0) {
                toListDF(node.children, list, node.id)  //递归
            }
        }
    }

JS树结构转list结构

标签:parentId   null   parent   node   tree   name   深度优先   树结构   节点   

原文地址:https://www.cnblogs.com/aeolian/p/12028102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!