码迷,mamicode.com
首页 > 其他好文 > 详细

找到树中指定id的所有父节点

时间:2019-09-19 00:43:29      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:const   list   tree   就是   UNC   data   span   col   class   

const data = [{
    id: 1,
    children: [{
        id: 2,
        children: [{
            id: 3,
        }, {
            id: 4,
        }],
    }],
}, {
    id: 5,
    children: [{
        id: 6,
    }],
}];

let nodes = [];
function getParentNodes(id, tree) {
    _getParentNodes([], id, tree);
    return nodes;
}

function _getParentNodes(his, targetId, tree) {
    tree.some((list) => {
        const children = list.children || [];
        if (list.id === targetId) {
            nodes = his;
            return true;
        } else if (children.length > 0) {
            const history = [...his];
            history.push(list);
            return _getParentNodes(history, targetId, children);
        }
    })
}

  要找到一颗树中指定id的那个节点很简单。如果要找到指定的所有父节点,转换一下思路就是将深度遍历的每条顺序都记录下来,直到找到了指定id的节点时,输出该条记录。

  那么仅仅需要在每次遍历时,将上一次的记录传过去即可。

找到树中指定id的所有父节点

标签:const   list   tree   就是   UNC   data   span   col   class   

原文地址:https://www.cnblogs.com/youyouluo/p/11546462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!