已知叶子节点的信息,如何获取相应分支的所有节点的信息?

发布于 09-11 16:11 字数 722 浏览 29 评论 0

最近遇到个需求,数据结构是一个树形的结构。
是我点击某个子节点,需要获取相应分支的所有节点的某个属性值。数据结构如下图。

let a = {
    "type": "root",
    "value": 1,
    "level":0,
    "leafNode": false,
    "children": [
      {
        "type":"second",
        "value":2,
        "level":1,
        "leafNode": true
      },
      {
        "type":"second",
        "value":2,
        "level":1,
        "leafNode": false,
        "children": [
          {
            "type":"third",
            "value":3,
            "level":2,
            "leafNode": true
          }
        ]
      }
    ]
  }

图片描述

比如说我点击E获取到了E的层级和信息。如何同时获取相应分支(B和A)的信息?求大神赐教。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丘比特射中我2022-09-18 16:11:01

直接存个父节点的引用呗,如果你不在乎循环引用的话。
第二种办法是维护一个weakMap,其中key是每个节点的key,value是节点。然后只需要存父节点的key即可,要用的时候拿着key来找。相当于手动实现了一个指针。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文