@Bebster

Как мне сделать одну переменную для нескольких ключей?

const quiz = [
    {
        "q": "Какой вид компьютерного устройства вы хотели бы приобрести?",
        "a": {
            "p": "Настольный ПК",
            "b": "Ноутбук",
            "o": "Моноблок",
        }
    },
    {
        "q": "Для чего чаще всего вы планируете использовать компьютер?",
        "a": {
            "d": "Для работы или учёбы",
            "e": "Для работы с фото и видеоматериалом",
            "f": "Для развлечений (посмотреть фильм,послушать музыку, поиграть в игры)",
            "i": "Для доступа в интернет",
        }
    },
    {
        "q": "Какой у вас бюджет?",
        "a": {
            "w": "10000₽ - 30000₽",
            "x": "30000₽ - 40000₽",
            "y": "40000₽ - 50000₽",
            "z": "50000₽ - 60000₽",
            "l": "60000₽ - 70000₽",
            "m": "Больше 70000₽",
        }
    },
];


У меня есть код и я хочу, чтобы при выборе варианта(например "P") засчитывались баллы для таких переменных как "pdw", "pdx", "pdy" и т.д. Как мне сделать так, чтобы при выборе варианта ответа счёт шёл не к переменной "P", а к переменным "pdw", "pdx" и т.д.???

upd: Всего 72 переменные, на первом месте переменной стоит p,b или o, на втором месте стоит d,e и т.д(надеюсь, вы поняли) Надо, чтобы при выборе варианта ответа засчитывался один балл во все переменные, которые содержат букву ключа этого ответа, то есть объединить в одну переменную много переменных, которые содержат такую букву. А сейчас, если выбрать вариант ответа идёт просто "p" + 1 или "w" + 1 и т.д А надо, чтобы при выборе "p" счёт шёл к переменным "pdw" + 1 , "pdx" + 1 и т.д А в конце выбрать переменную у которой самый большой счёт
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Бери и делай
В вашем вопросе не понятно ничего. Попробуйте описать задачу, а не вашу реализацию. Это называется "Проблема XY".

Судя по-всему, вам нужно сделать так, что-бы пользователь ответил на последовательные вопросы и вы получили ответ.
Если да, то вы немного отклонились от правильного пути. 72 переменные? Это-же жесть.. А если вам потребуется добавить ещё одну секцию с шестью вариантами? 72 * 6 = 432. А если после этого ещё одну на, скажем, пять? 432 * 5 = 2 160 вариантов окончания опроса. 2 160 переменных. Вручную!
Когда такое происходит (надо какой-то сложный, невероятно объёмный и непонятный кусок программы делать "руками") и вы не можете нагуглить автоматическое решение, то в 99.999% случаях вы делаете какую-то хрень и нужно очень серьезно подумать, есть ли другой путь. Программирование такая штука, что все подобные проблемы уже давно решены за вас, вам осталось только грамотно вставить их в своё приложение или, если решение совсем в пару строк, то грамотно написать самому. На крайний случай - по известному алгоритму

Вам нужно:
Создать массив с вопросами
При выборе, в другой массив с ответами записываем ответ.
Как только вопросы заканчиваются, у вас есть массив в ответами вида:
[1, 3, 2]
/*
 Как обрабатывать ответы? Очень просто.
 Например, [1, 3, 2] значит, что пользователь выбрал в первом вопросе второй вариант
 Во втором четвертый, в третьем третий. Итого: 
 
[1, 3, 2] - значит
Вопрос: Какой вид компьютерного устройства вы хотели бы приобрести?
Ответ: Ноутбук

Вопрос: Для чего чаще всего вы планируете использовать компьютер?
Ответ: Для доступа в интернет

Вопрос: Какой у вас бюджет?
Ответ: 40000₽ - 50000₽
*/


Если вопросная база растёт, то у вас нет напрягов, вы просто добавляете в массив вопросов объекты с вариантами ответов и заголовком вопроса. Это значит, что 2 160 переменных не потребуються.

Вот, накидал вам код примерный >> link

Полезные ссылки:
Вопрос на Хабре про алгоритмическое мышление
Учебник JavaScript (очень рекомендую, он на русском. Для понимания того кода, что я вам накидал )
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы