Мне нужно преобразовать этот тип вложенного массива, чтобы иметь возможность искать по ключу (id) самым быстрым способом:
[
{
"id":1,
"name":"example1",
"items":[
{
"id":1,
"name":"example1",
"example":123
},
{
"id":2,
"name":"example1",
"example":123
}
]
},
{
"id":2,
"name":"example1",
"items":[
{
"id":3,
"name":"example1",
"example":123
},
{
"id":4,
"name":"example1",
"example":123
}
]
}
]
На самом деле вложенных массивов гораздо больше (около 4 уровней).
Мой текущий способ - сделать reduce
каждого уровня, а затем я могу использовать, например, list[1].items[1].name
. Это выглядит как очень медленный и неэффективный способ для меня.
Я также нашел здесь на stackoverflow , что я могу создать таблицу поиска id->index
, но похоже, что она имеет ту же сложность и съедает больше памяти.
У кого-то есть идея лучше сделать такое преобразование? Я работаю с огромными наборами данных, и я начинаю чувствовать, что мне нужно найти лучший способ обработки данных.
Я делаю это, потому что мне нужно быстро искать в этом наборе данных по идентификатору. Поиск в массиве по findIndex
идет медленно. И преобразование требует обработки, как я описал выше.
Мне нужно найти вариант с наименьшей общей сложностью.