Size: a a a

2020 June 09

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
память не ограничена - рекурсия, ограничена - итерируй
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
ты там задачки на литкоде решаешь что-ли?)
источник

AL

Andrey Listochkin in BeerJS😺Kyiv
Max Lebid
как обойти быстро и качественно и поменять у каждого чилдрена нужную проперть
function change(obj, applier, childrenProp) {
 applier(obj);
 if (obj[childrenProp]) {
   obj[childrenProp].forEach(c => change(c, applier, childrenProp))
 }
}
источник

ML

Max Lebid in BeerJS😺Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
ты там задачки на литкоде решаешь что-ли?)
Нет у меня есть объект дерево, которое для d3 js используется, у меня там надо проперть у каждого чилдрена поменять
источник

ML

Max Lebid in BeerJS😺Kyiv
Andrey Listochkin
function change(obj, applier, childrenProp) {
 applier(obj);
 if (obj[childrenProp]) {
   obj[childrenProp].forEach(c => change(c, applier, childrenProp))
 }
}
Спс
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Max Lebid
Нет у меня есть объект дерево, которое для d3 js используется, у меня там надо проперть у каждого чилдрена поменять
Вот там Андрей выше рекурсивно предложил, что ОК
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Но оно по памяти будет хавать если там много очень
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
а вообще, если у тебя дерево — так используй алгоритимы для дерева, обход же не сложно
источник

ML

Max Lebid in BeerJS😺Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
Но оно по памяти будет хавать если там много очень
там только до “третьего колена” надо
источник

AL

Andrey Listochkin in BeerJS😺Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
Но оно по памяти будет хавать если там много очень
не будет. Это in-place update. Т.е. только стек и он зависит от глубины, а не ширины дерева. Плюс стек в JS-движке явно меньше места занимает, чем ворох JS-объектов
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Andrey Listochkin
не будет. Это in-place update. Т.е. только стек и он зависит от глубины, а не ширины дерева. Плюс стек в JS-движке явно меньше места занимает, чем ворох JS-объектов
ну вот у него вложеных 100к объектов, так придётся создать 100к скоупов функций, а втупри там ещё и цикл. оно так норм просядет на самом деле
источник

AL

Andrey Listochkin in BeerJS😺Kyiv
Плюс сейчас каждая таба в браузере и так мегов по 300 жрет - никто не заметит тех рекурсий
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Andrey Listochkin
Плюс сейчас каждая таба в браузере и так мегов по 300 жрет - никто не заметит тех рекурсий
hope so 😆
источник

AL

Andrey Listochkin in BeerJS😺Kyiv
На практике никто не создает такие глубокие деревья. Если нужно дерево с большим количеством данных, делают широкий branching factor. Те же persistent collections в Clojure: bracnh factor 32, для миллиарда записей глубина будет
Math.ceil(Math.log(1000000000) / Math.log(32)) = 6
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович... in BeerJS😺Kyiv
Andrey Listochkin
На практике никто не создает такие глубокие деревья. Если нужно дерево с большим количеством данных, делают широкий branching factor. Те же persistent collections в Clojure: bracnh factor 32, для миллиарда записей глубина будет
Math.ceil(Math.log(1000000000) / Math.log(32)) = 6
источник

AL

Andrey Listochkin in BeerJS😺Kyiv
Но это только если про деревья говорим. Всякие другие циклы на рекурсии заменять, где каждый элемент - это новый фрейм в стеке, - такое себе решение.
источник

I

Ingvar in BeerJS😺Kyiv
Yevhenii Deviantsev 👀
*На заборе тоже пишут*
JS?
источник

KY

Kyrylo Yakovenko • 𝟰... in BeerJS😺Kyiv
Aʟᴇx 🐴 ␠
Я б найнбот брал)
найнбот это тоже сяоми
источник

A

Aʟᴇx 🐴 ␠ in BeerJS😺Kyiv
сигвей ж не?
источник

KY

Kyrylo Yakovenko • 𝟰... in BeerJS😺Kyiv
и он тоже сяоми
источник