在JSON Tree结构保存结构中搜索

时间:2019-02-19 05:45:06

标签: javascript json treeview

我的树形结构如下,

                     {
                      uid: 1,
                      children: [
                        {
                          uid: 2
                        },
                        {
                          uid: 3,
                          children: [
                            {
                              uid: 4
                            },
                            {
                              uid: 5,
                              children: [
                                {
                                  uid: 6
                                }
                              ]
                            },
                            {
                              uid: 7
                            }
                          ]
                        }
                      ]
                  }

现在,我想通过uid搜索树形结构,并需要将其作为树形结构输出(即与其父级一起,但没有兄弟姐妹)

例如,如果我在树结构中搜索“ uid:4”,则输出结果应类似于以下内容,

                    {
                      uid: 1,
                      children: [
                        {
                          uid: 3
                          children: [
                            {
                              uid: 4
                            }
                          ]
                        }
                      ]
                  }

我尝试了递归,但未能与父母一起获取匹配的元素

1 个答案:

答案 0 :(得分:0)

假设原始JSON树没有重复项,并且假设JSON树并不总是包含顺序的uid,并且假设您只想要直接祖先线,则最好使用深度优先搜索(https://www.tutorialspoint.com/Depth-first-search-traversal-in-Javascript )在原始JSON树上。您还需要跟踪当前的祖先直线,以防下一个值与您要搜索的那个相匹配。然后,您可以返回完整的直线。