javaScript 根据子节点ID获取结构树中改子节点的所有父节点ID

问题

  js中根据子节点ID获取结构树中该子节点所有的父节点ID

方法代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 传入结构树以及查询父节点的子节点ID
    function getTreeIds(tree, nodeId) {
        const { children = 'children', id = 'id' } = {};
        const toFlatArray = (tree, parentId) => {
            return tree.reduce((t, _) => {
            const child = _[children]
            return [
                ...t,
                parentId ? { ..._, parentId } : _,
                ...(child && child.length ? toFlatArray(child, _[id]) : [])]
            }, [])
        }
        const getIds = flatArray => {
            let ids = [nodeId]
            let child = flatArray.find(_ => _[id] === nodeId)
            while (child && child.parentId) {
            ids = [child.parentId, ...ids]
            child = flatArray.find(_ => _[id] === child.parentId)
            }
            return ids
        }
        return getIds(toFlatArray(tree))
    }

  

原帖地址

  https://zhuanlan.zhihu.com/p/484886345

作者:假装空白
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   假装空白  阅读(1080)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示