Связный список (или нет), как правильно в этом случае?

Есть небольшая таблица с вкладками и вопросами в каждой вкладке.
Все вопросы созданы динамически из массива объектов. Варианты ответа на следующем вопросе зависят от предыдущего.

Как правильно, да и вообще как нужно делать, чтобы можно было управлять вариантами в большом кол-ве вопросов?

let arr = [

  {  'Выберите1': [
    'Первый',
    'Второй'
  ],
   
   'Выберите2': [
    'Первый',
    'Второй'
  ]
  }
//и так далее несколько объектов
];

  parseArray(l) {
    let item = '';
    for(let key in l) {
      let data = l[key];

      item += typeof data === 'string' ? `<li class="item">${data}</li>` : 
        `<div class="select">
          <button class="btn" tabindex="1">${key}</button>
          <ul class="list">${this.parseArray(data)}</ul>
        </div>`;
    }

    return item;
  }
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Можно добавить к каждому варианту параметр dependentList, который будет содержать массив вариантов из предыдущего вопроса. И если в предыдущем вопросе выбрали вариант из этого списка dependentList следующего вопроса, то этот вариант в следующем вопросе будет отображаться. Или же нужна глубина еще на два или несколько предыдущих вопроса?
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Если я правильно понял задачу, нужно описывать ветвящийся сценарий выбора вариантов. И динамически рендерить следующий вопрос после сделанного выбора.

Можно описать всё дерево структурой с множеством уровней вложенности. Или придумать подобие адресации и добавлять / извлекать очередной вопрос с вариантами по «адресу»; тогда список будет без вложенностей, плоский.

Тут не предусмотрел повторные клики по более высоким элементам в иерархии. По хорошему, они должны удалять все нижестоящие выборки.
фиддл
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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