• 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)  //递归
                }
            }
        }
  • 相关阅读:
    使用 Vite 提供的常见模板创建项目
    git 上传空目录,并忽略该空目录中产生的文件变更
    SCL
    Python中时间相关的操作
    rpm的使用
    configparser
    安全随机数
    sqlite3
    多线程threading
    python小杂记
  • 原文地址:https://www.cnblogs.com/aeolian/p/12028102.html
Copyright © 2020-2023  润新知