У меня есть массив 'arr', так как у меня есть критерии поиска name = abc.def и мне нужно разделить ('.') Имена, проходящие через все узлы, как показано ниже, сначала поиск name= abc , то должен идти глубже во всех совпадениях, где я должен продолжить со второй части критериев поиска - child name = 'def' (которая фактически является второй частью исходного поискового ключевого слова-"abc.def") Вот данные, через которые я должен пройти:
vars={1.1.1:{"no": "1.1.1","name": "Foo"}}
let arr = [
{
"no": "1",
"name": "abc",
"child" : [
{
"no": "1.1",
"name": "def",
"child" : [
{
"no": "1.1.1",
"name": "Foo"
},
{
"no": "1.1.2",
"name": "jkl"
}
]
},
{
"no": "1.2",
"name": "Foo",
"child" : [
{
"no": "1.2.1",
"name": "Foo"
},
{
"no": "1.2.2",
"name": "aaaaaaa"
}
]
}
]
},
{
"no": "2",
"name": "abc2",
"child" : [
{
"no": "2.1",
"name": "Foo",
"child" : [
{
"no": "1.1.1",
"name": "ghi"
},
{
"no": "1.1.2",
"name": "jkl"
}
]
},
{
"no": "2.2",
"name": "ghssssi",
"child" : [
{
"no": "2.2.1",
"name": "ghssssi"
},
{
"no": "2.2.2",
"name": "asass"
}
]
}
]
}
];
Ожидаемый результат: пройти по иерархии и извлечь информацию обо всех дочерних совпадениях в хеш-таблице. Вывод:
vars={};
vars[1.1.1]={ "no": "1.1.1","name": "Foo"}
vars[1.1.2]={ "no": "1.1.2","name": "jkl"}
...
Например: