获取router列表中的所有路径


代码如下

/**
 * 递归获取路由的所有路径
 * @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' ]

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM