mr_akkain
@mr_akkain
Потихоньку учусь

Как в JavaScript делать такие массивы?

Как сделать структуру массива как на картинке? И как это правильно называется в JS? Гуглил как "Многомерный массив", "Вложенный массив", "Многовложенный массив".

62832111e2c2c440637376.png

Буду циклом проходить input в DOM. И мне нужно сохранить все данные в такой иерархии, чтобы было понимание с какого элемента были добавлены данные. Буквенные литералы на изображении с тремя точками обозначают, что может быть еще неограниченное количество таких пунктов. Буду крайне благодарен за примеры, документацию и правильное определение такой структуре массива.
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 5
@ForSureN1
frontend dev
Древовидный
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Это дерево, а не массив.
Строится из одинаковых объектов
{ name: 'имя узла', childs: [ список дочерних узлов ] }
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Ответ написан
Комментировать
@rPman
Хранить данные нужно исходя из задачи, а точнее как именно ты будешь читать эти данные, как искать, в каком порядке (а нужен ли он) проходить, необходимость удалять или менять порядок и уровни вложенности и т.п.

Например хранить можно список элементов в виде плоского массива, и в большинстве задач этого будет более чем достаточно

Если нужно при этом знать, у какого элемента какой предок и какие потомки, то добавить поля parrent и childs со ссылками либо на сами объекты либо на их идентификатор (номер) в массиве всех элементов

Если нужна связь с элементами html dom то в соответствующие элементы добавляй либо сасылку на сам dom элемент либо на его уникальный id
Ответ написан
Комментировать
@Gricc
frontend developer
const A = {
  B1: {
    C1: {
      D1: [
        "значение конечного D в этом примере масив но ты можешь вствыить что угодно если нужно продолжить дерево то используй обьект а не массив либо делай вложенные масивы во вложенные массивы но это не совсем удобно при обращении",
      ],
      D2: {},
      D3: {},
      D4: {},
    },
    C2: {
      D1: {},
      D2: {},
      D3: {},
      D4: {},
    },
    C3: {
      D1: {},
      D2: {},
      D3: {},
      D4: {},
    },
  },
  B2: {
    C1: {},
    C2: {},
    C3: {},
  },
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект