Можно просто создать функцию addQuestion и дорбавлять в нее данные из внешнего хранилища или функцию createTest, которая также будет считывать вопросы из внешнего хранилища и создавать тест(тут вариант выбирать в зависимости от ситуации).
function addDefaultQuestions() {
var questionOne = new Question("Что из перечисленного не является языком программирования?", [
new Answer("HTML", true),
new Answer("Java", false),
new Answer("Python", false),
new Answer("DevOps", true)
]);
questions.push(questionOne);
var questionTwo = new Question("Какие из перечисленных видов тестирования могут быть автоматизированы", [
new Answer("UI тестирование", true),
new Answer("Юзабилити тестирование", false),
new Answer("Тестирование совместимости", true),
new Answer("Unit тестирование", true)
]);
questions.push(questionTwo)
Так делать не стоит, т.к. при 20 вопросах вам нужно будет написать 20 таких конструкций ну и дальше по возрастающей. вам нужно создать массив и проверять его при нажатии на кнопку, и например подсвечивать вопросы на которые не ответили.
var answer2 = prompt("Введите текст 2 варианта ответа");
if (!answer2) {
alert("Вы не ввели текст 2 варианта ответа. Попробуйте добавить вопрос заново");
return;
}
var answer3 = prompt("Введите текст 3 варианта ответа");
if (!answer3) {
alert("Вы не ввели текст 3 варианта ответа. Попробуйте добавить вопрос заново");
return;
}
В общем читать ваш код очень трудно (пишите хотя бы с отступами). Вы в целом неправильно подошли к написанию кода. Когда будете переписывать продумайте такие моменты как:
1) Количество вопросов может быть любым (пока ограничьтесь одним тестом)
2) При изменении числа вопросов ваш код не должен меняться
3) У вас нет структуры у кода, стоит отделить функции от основой логики создания теста(тут для любой программы общее правило, что UI нужно пытаться как можно меньше перемешивать с логикой работы программы, хорошо когда отдельная функция/класс возвращает, то что нужно отобразить, а у вас все перемешано).