у него вложенность более 5 уровней вглубь. Чтобы добраться допустим до 5 уровня, мне необходимо запускать несколько вложенных циклов. Я знаю, что это плохо для производительности, O(n^5) и т.д. Есть ли какая-то альтернатива, как это можно оптимизировать? Создавать свои словари, Map'ы?
А что тебе от него нужно?
В одной функции мне надо получить значение с пятого уровня вложенности, в другой функции с 3 и т.д. Причем это не просто значения, а объектами с меняющимися значениями
Так там не будет О(n5), вроде как объекты на хэшах построены, так что доступ можно считать как О(1). Тебе ж ни в первой, ни во второй функции, не требуется выводить прям все поля объекта до 5 уровня…
Да, все выводить не нужно. Но циклы же проходятся по всем значениям.
for (let key5 in obj?.[key1]?.[key2]?.[key3]?.[key4]) чем не устраивает? Обходить ты будешь только 5й уровень вложенности в таком случае
тру герл? похвально
Ну а вдруг криво придёт, сомневаюсь, что парень свою Json-ку обходит. Проще перестраховаться чем потом сидеть и «а чо а в смысле» Ещё проще конечно try{ const obj5lvl = obj[key1]…[key4]; … } catch(e) {console.warn(e)} и если ворнинг будет - идти есть мозг бэку
Обсуждают сегодня