JS树结构转list结构

Posted 秋夜雨巷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS树结构转list结构相关的知识,希望对你有一定的参考价值。

树转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结构的主要内容,如果未能解决你的问题,请参考以下文章

Python-树结构转list

Python-树结构转list

js数据结构处理--------树结构数据遍历

飘乙己:List转Tree有4种写法!

飘乙己:List转Tree有4种写法!

求一个js实现的树结构的table表格程序