獲取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