Поиск в JSON Структура сохранения древовидной структуры - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть древовидная структура, как показано ниже,

                     {
                      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 голосов
/ 19 февраля 2019

Если исходное дерево JSON не имеет дубликатов, и что дерево JSON не всегда содержит последовательные идентификаторы uid и что вам нужна только прямая линия предков, лучше использовать поиск в глубину (https://www.tutorialspoint.com/Depth-first-search-traversal-in-Javascript) в исходном дереве JSON. Вы также захотите отслеживать текущую прямую наследственную линию в случае, если следующее значение совпадает с тем, которое вы ищете. Затем вы можете вернуть полную прямую линию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...