博客园

super.hill

记录搬砖中遇到的坑,欢迎批评指导!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

代码如下

/**
 * 递归获取路由的所有路径
 * @param router 路由列表
 * @param pp 父级路径path parentPath
 * @return []string
 */
function getPath(router,pp) {
    var arr = [];
    pp = pp || ''
    for(let r of router){
        let path = r.path
        let children = r.children
        if(pp){
            path = `${pp}/${path}`
        }
        // 如果有子元素,不添加父元素的路径
        if(children && children.length > 0){
            arr = arr.concat(getPath(children,path))
        }else{
            arr.push(path)
        }            
    }
    return arr;
};

测试代码如下

// 测试数据
var
router = [ { path: "/test", children: [ { path: "test2" }, { path: "test2", children:[ { path:'test3' }, { path: 'test3-1' } ] } ] } ];
// 测试结果 let res
= getPath(router); //[ '/test/test2', '/test/test2/test3', '/test/test2/test3-1' ]

 

 

posted on 2021-06-17 09:46  超岭  阅读(1129)  评论(0编辑  收藏  举报
博客园