У меня есть массив объектов с идентификатором в качестве ключа для каждого объекта.Каждый объект представляет собой список навигации для идентификатора.
Мне нужно объединить все списки навигации в один большой список, в котором листья содержат идентификаторы принадлежности.
Полученный объект не должен содержать массив, нолистья, которые будут списком идентификаторов.
Я уже пробовал рекурсивные решения, функции lodash, такие как слияние и назначение, но я застрял с глубиной объектов
Входной JSON, например:
[
{
"id0": [
{
"Topitem 1": [
{
"Subitem 1": [
"Leaf 1"
]
}, {
"Subitem 2": [
"Leaf 2"
]
}
]
},
{
"Topitem 1": [
{
"Subitem 3": [
"Leaf 1"
]
}
]
},
{
"Topitem 2": [
"Leaf 1",
"Leaf 3"
]
},
{
"Topitem 3": [
{
"Subitem 1": [
{
"SubSubitem 1": [
"Leaf 4"
]
}
]
}
]
}
]
},
{
"id1": [
"Leaf 5"
]
},
{
"id2": [
"Leaf 5"
]
},
{
"id3": [
{
"Topitem 1": [
"Leaf 1",
{
"Subitem 2": [
"Leaf 2",
"Leaf 3"
]
}
]
}, {
"Topitem 2": [
"Leaf 1",
"Leaf 2"
]
}
]
},
{
"id4": [
"Leaf 5"
]
}
]
Ожидаемый результат:
{
"Topitem 1": {
"Subitem 1": {
"Leaf 1": ["id0"]
},
"Subitem 2": {
"Leaf 2": ["id0","id3"],
"Leaf 3": ["id3"]
},
"Subitem 3": {
"Leaf 1": ["id0"]
},
"Leaf 1": ["id3"]
},
"Topitem 2": {
"Leaf 1": ["id0","id3"],
"Leaf 2": ["id0","id3"]
},
"Topitem 3": {
"Subitem 1": {
"SubSubitem 1": {
"Leaf 4": ["id0"]
}
}
},
"Leaf5": ["id1","id2","id4"]
}