首页 > 其他 > 详细

根据id 递归查找父级id

时间:2019-06-04 13:48:12      阅读:121      评论:0      收藏:0      [点我收藏+]

tree 数据

var arr = [{
    "label": "文件夹",
    "parentId": null,
    "id": "0",
    "children": [{
            "label": "文件夹1",
            "parentId": "0",
            "id": "1",
            "children": [{
                    "label": "文件夹1-1",
                    "parentId": "1",
                    "id": "1.1",
                    "children": null
                },
                {
                    "label": "文件夹1-2",
                    "parentId": "1",
                    "id": "1.2",
                    "children": null
                },
                {
                    "label": "文件夹1-3",
                    "parentId": "1",
                    "id": "1.3",
                    "children": [{
                            "label": "文件夹1-3-1",
                            "parentId": "1.3",
                            "id": "1.3.1",
                            "children": [{
                                "label": "文件夹1-3-1-1",
                                "parentId": "1.3.1",
                                "id": "1.3.1.1",
                                "children": null
                            }]
                        },
                        {
                            "label": "文件夹1-3-2",
                            "parentId": "1.3",
                            "id": "1.3.2",
                            "children": null
                        },
                        {
                            "label": "文件夹1-3-3",
                            "parentId": "1.3",
                            "id": "1.3.3",
                            "children": null
                        }
                    ]
                }
            ]
        },
        {
            "label": "文件夹2",
            "parentId": "0",
            "id": "2",
            "children": [{
                "label": "文件夹2-1",
                "parentId": "2",
                "id": "2.1",
                "children": null
            }]
        },
        {
            "label": "文件夹3",
            "parentId": "0",
            "id": "3",
            "children": null
        }

    ]
}];

递归查找

//递归找父级id
getParentIds(treeData, nodeId) {
                var arrRes = [];
                if(treeData.length == 0) {
                    if(!!nodeId) {
                        arrRes.unshift(nodeId);
                    }
                    return arrRes;
                }
                let rev = (data, nodeId) => {
                    for(var i = 0, length = data.length; i < length; i++) {
                        let node = data[i];
                        if(node.id == nodeId) {
                            arrRes.unshift(nodeId);
                            rev(treeData, node.parentId);
                            break;
                        } else {
                            if(!!node.children) {
                                rev(node.children, nodeId);
                            }
                        }
                    }
                    return arrRes;
                };
                arrRes = rev(treeData, nodeId);
                return arrRes;
            },

结果

this.getParentIds(arr,1.3.1)  // [0,1,1.3,1.3.1]

 

根据id 递归查找父级id

原文:https://www.cnblogs.com/zhaozhenzhen/p/10972931.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!