js递归获取树形菜单某个节点的所有父节点

发布时间 2024-01-08 16:18:14作者: 李云蹊
let arr=[
            {
                id:1,
                name:1,
                children:[
                    {
                        id:2,
                        name:2,
                        children:[
                            {
                                id:3,
                                name:3,
                                children:[]
                            }
                        ]
                    }
                ]
            },
            {
                id:4,
                name:4,
                children:[
                    {
                        id:5,
                        name:5,
                        children:[
                            {
                                id:6,
                                name:6,
                                children:[]
                            }
                        ]
                    }
                ]
            },

        ]
        function getTree(arr,id){
            for(let i=0;i<arr.length;i++){

                if(arr[i].id==id){
                    return [arr[i]];
                }
                if(arr[i].children.length>0){
                    let node = getTree(arr[i].children,id)
                    if(node!==undefined){
                        return node.concat(arr[i]);
                    }
                }
            }

        }
        console.log(getTree(arr,6));