169 похожих чатов

Всем привет. Нужен совет. Есть json, который приходит с сервера,

у него вложенность более 5 уровней вглубь. Чтобы добраться допустим до 5 уровня, мне необходимо запускать несколько вложенных циклов. Я знаю, что это плохо для производительности, O(n^5) и т.д. Есть ли какая-то альтернатива, как это можно оптимизировать? Создавать свои словари, Map'ы?

8 ответов

17 просмотров

А что тебе от него нужно?

Aleksandr- Автор вопроса
Светлана Чайка с Голубятни
А что тебе от него нужно?

В одной функции мне надо получить значение с пятого уровня вложенности, в другой функции с 3 и т.д. Причем это не просто значения, а объектами с меняющимися значениями

Aleksandr
В одной функции мне надо получить значение с пятог...

Так там не будет О(n5), вроде как объекты на хэшах построены, так что доступ можно считать как О(1). Тебе ж ни в первой, ни во второй функции, не требуется выводить прям все поля объекта до 5 уровня…

Aleksandr- Автор вопроса
Светлана Чайка с Голубятни
Так там не будет О(n5), вроде как объекты на хэшах...

Да, все выводить не нужно. Но циклы же проходятся по всем значениям.

Aleksandr
Да, все выводить не нужно. Но циклы же проходятся ...

for (let key5 in obj?.[key1]?.[key2]?.[key3]?.[key4]) чем не устраивает? Обходить ты будешь только 5й уровень вложенности в таком случае

jabascripter
тру герл? похвально

Ну а вдруг криво придёт, сомневаюсь, что парень свою Json-ку обходит. Проще перестраховаться чем потом сидеть и «а чо а в смысле» Ещё проще конечно try{ const obj5lvl = obj[key1]…[key4]; … } catch(e) {console.warn(e)} и если ворнинг будет - идти есть мозг бэку

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта