原创

js树路径寻找


这是树结构

let treeArray = [
    {
        id: 43214,
        name: '行政部',
        children: [
            {
                id: 57541,
                name: '人力资源部',
                children: [
                    {
                        id: 13245,
                        name: '招聘组'
                    },
                    {
                        id: 98767,
                        name: 'SSC组'
                    }
                ]
            },
            {
                id: 65436,
                name: '服务运营',
                children: [
                    {
                        id: 34236,
                        name: '前台运营组'
                    },
                    {
                        id: 564344,
                        name: '后台运营组'
                    }
                ]
            }
        ]
    },
    {
        id: 87567,
        name: '养老部'
    },
    {
        id: 23121,
        name: '市场部',
        children: [
            {
                id: 92463,
                name: '品牌部',
                children: [{
                    id: 87428,
                    name: '广告部'
                },
                    {
                        id: 12835,
                        name: '对外合作部'
                    }
                ]
            },
            {
                id: 32697,
                name: '公关部'
            }
        ]
    }
]

dfs深度优先

function getTreeRoute(tree, id){
    let path = []
    function dfs(tree){
        for (let i = 0; i < tree.length; i++) {
            if (tree[i].children){
                if (dfs(tree[i].children)){
                    path.unshift(tree[i].name)
                    return true
                }
            } else if (tree[i].id === id){
                path.unshift(tree[i].name)
                return true
            }
        }
    }
    bfc(tree)
    return path
}
console.log(getTreeRoute(treeArray, 34236).join('/'))// 行政部/服务运营/前台运营组

以上方法只能查找第一个结果

JavaScript
  • 作者:零三(联系作者)
  • 最后更新时间:2021-04-02 18:06
  • 版权声明:自由转载-非商用-非衍生-保持署名
  • 转载声明:来源地址 https://web03.cn
  • 评论