Size: a a a

Node.js — русскоговорящее сообщество

2020 March 21

RB

Random Balance in Node.js — русскоговорящее сообщество
Андрій Палій
Таким образом?
function walkTree(node) {
 if(node.id === "значение которое ищем"){
  return node
}
  for (const child of node.children) {
   return walkTree(child);
 }

}
Нет, ты таким образом прервёшь цикл.
источник

АП

Андрій Палій in Node.js — русскоговорящее сообщество
И я о том же
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Создай массив в начале и туда пуш элементы найденные. В конце его вернёшь.
источник

АП

Андрій Палій in Node.js — русскоговорящее сообщество
Его нужно будет прокидывать как аргумент, верно?
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Андрій Палій
Его нужно будет прокидывать как аргумент, верно?
Нет, только возвращаемый результат.
источник

АП

Андрій Палій in Node.js — русскоговорящее сообщество
Можешь показать, как именно? А то я уже второй день думаю, как это сделать, но пока, только, придумал через масив который прокидываю как аргумент
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Random Balance
Так деревья же только так и обоходятся.
Это зависит от формата дерева, формата представления. В общем случае - нет, не только так
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Андрій Палій
Можешь показать, как именно? А то я уже второй день думаю, как это сделать, но пока, только, придумал через масив который прокидываю как аргумент
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Алексей Попов
Это зависит от формата дерева, формата представления. В общем случае - нет, не только так
Ты уже не первый кто говорит что можно без рекурсии дерево обойти, но ещё никто не показал код. Очень любопытно увидеть.

Я знаю что есть способы, но хотелось бы увидеть насколько код будет более сложным по сравнению с рекурсией и именно на JS.
источник

АП

Андрій Палій in Node.js — русскоговорящее сообщество
круто, огромное спасибо)
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Ну и понятно что если нам нужно реально неограниченное дерево обойти то придётся писать что-то посложнее. 💁🏻‍♂️
источник

АП

Андрій Палій in Node.js — русскоговорящее сообщество
Как я уже писал више, в этом случае будет не много элементов, и вложеность не большая, поэтому, писать что-то посложнее смысла нет
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Алексей Попов
Задача - создать апи для копирования/перемещения файлов и папок
Это делается модулем fs, без лишних зависимостей. Я не понял что значит "сложность в том, что ты не имеешь представления". Если вдруг действительно понадобится (в чём я очень сомневаюсь) - исходники ноды открыты, и не сложно посмотреть как именно там копируется файл
Чисто по пункту "атрибуты можно добавлять" все твои рассуждения рушатся
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Крайне вероятно это задача на зачет и нужно показать умение создавать классы с нужным функционалом
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Поэтому я скинул репозиторий где реализованы классы и реализованы ПРОСТО. Прикрутить вместо логики хранения в памяти перенаправление на fs не особо сложно
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Зато можно сделать требуемую задачу: добавить чертовы атрибуты
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
class Dirent {
  attributes = new Map();

  setAttribute(key, value) {..}
  getAttribute(key) {..}
  hasAttribute(key,) {..}
  getAttributeKeys() {..}
  ....
}
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
А fs это просто низкоуровневый биндинг к юниксовым примитивам
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
источник