已知叶子节点的信息,如何获取相应分支的所有节点的信息?
最近遇到个需求,数据结构是一个树形的结构。
是我点击某个子节点,需要获取相应分支的所有节点的某个属性值。数据结构如下图。
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)的信息?求大神赐教。
直接存个父节点的引用呗,如果你不在乎循环引用的话。
第二种办法是维护一个weakMap,其中key是每个节点的key,value是节点。然后只需要存父节点的key即可,要用的时候拿着key来找。相当于手动实现了一个指针。