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

Posted youyouluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找到树中指定id的所有父节点相关的知识,希望对你有一定的参考价值。

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的所有父节点的主要内容,如果未能解决你的问题,请参考以下文章

c#关于树节点怎么获取父节点下的所有子节点的ID

MySql根据ID查询树结构所有父/子节点

MySql根据ID查询树结构所有父/子节点

JS 树结构 通过子id返回所有父节点id

JS 树结构 通过子id返回所有父节点id

JS 树结构 通过子id返回所有父节点id