我通宵在SO上寻找与我的问题相似的许多帖子,但没有一个能直接解决我的问题。请看下面。
我有一个这样的对象:
let data = [{
"id": 777,
"name": "Level 1_section_1",
"children": [{
"id": 778,
"name": "Level 2a",
"children": [
]
},
{
"id": 783,
"name": "Level 2b",
"children": [
]
}
]
},
{
"id": 786,
"name": "Level 1_section_2",
"children": [{
"id": 781,
"name": "Level 2c",
"children": [
]
}]
}
]
基本上,children 包含一个相同结构的节点数组。
如果我想要获取包含 id:783
的节点的引用,我会直觉地使用递归,但我不知道如何确保它递归地覆盖整个树,直到找到并返回我想要的确切节点,以便我可以将更多的子节点添加到找到的节点中。
尽管来自 CS 背景,但我对递归的了解相当生疏。
这是我在 jsfiddle 中尝试过的内容: https://jsfiddle.net/hanktrizz/surmf7dq/4/
请注意,data
树可能会任意深入(虽然我不希望它超过 8 或 9 层深度),但只是想指出这一点。