Чтение данных из локального файла в javascript массив объектов - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть приложение для викторины, которое отображает вопросы с несколькими вариантами ответов. В настоящее время все мои вопросы жестко запрограммированы в массиве questions [] в моей игре. js file. Я хочу изменить файл своей игры. js таким образом, чтобы все вопросы, их варианты и ответы читались из текстового, CSV-файла или файла Excel из той же папки root, в которой находится файл. js.

Текстовый файл будет содержать следующие данные:


вопрос, выбор1, выбор2, выбор3, выбор4, ответ

Как Вас зовут? Али, Номан, Ахмед, Дан, Номан

Какой ваш любимый предмет? Математика, физика, компьютер, английский sh, компьютер

Что такое 2 плюс 2? Пять, шесть, семь, четыре, Четыре


И Моя игра. js Файл выглядит следующим образом:

const question = document.getElementById("question");
const choices = Array.from(document.getElementsByClassName("choice-text"));

let currentQuestion = {};

let acceptingAnswers = false;

let score = 0;

let questionCounter = 0;

let availableQuesions = [];

let questions = [{
        question: "Inside which HTML element do we put the JavaScript??",
        choice1: "<script>",
        choice2: "<javascript>",
        choice3: "<js>",
        choice4: "<scripting>",
        answer: 1
    },
    {
        question: "What is the correct syntax for referring to an external script called 'xxx.js'?",
        choice1: "<script href='xxx.js'>",
        choice2: "<script name='xxx.js'>",
        choice3: "<script src='xxx.js'>",
        choice4: "<script file='xxx.js'>",
        answer: 3
    },
    {
        question: " How do you write 'Hello World' in an alert box?",
        choice1: "msgBox('Hello World');",
        choice2: "alertBox('Hello World');",
        choice3: "msg('Hello World');",
        choice4: "alert('Hello World');",
        answer: 4
    }
];

const CORRECT_BONUS = 10;

const MAX_QUESTIONS = 3;

startGame = () => {
    questionCounter = 0;
    score = 0;
    availableQuesions = [...questions];
    console.log(availableQuesions);
    getNewQuestion();
};

getNewQuestion = () => {
    if (availableQuesions.length === 0 || questionCounter >= MAX_QUESTIONS) {
        return window.location.assign("/end.html");
    }

    questionCounter++;

    const questionIndex = Math.floor(Math.random() * availableQuesions.length);

    currentQuestion = availableQuesions[questionIndex];

    question.innerText = currentQuestion.question;

    choices.forEach(choice => {
        const number = choice.dataset["number"];
        choice.innerText = currentQuestion["choice" + number];
    });
    availableQuesions.splice(questionIndex, 1);
    console.log(availableQuesions);

    acceptingAnswers = true;
};

startGame();

choices.forEach(choice => {
    choice.addEventListener("click", e => {
        if (!acceptingAnswers) return;

        acceptingAnswers = false;
        const selectedChoice = e.target;
        const selectedAnswer = selectedChoice.dataset["number"];
        console.log(selectedAnswer);
        getNewQuestion();
    });
});

1 Ответ

0 голосов
/ 05 февраля 2020

Используйте fs для чтения файла. Я предлагаю вам использовать JSON файл для хранения данных, с которым будет намного проще работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...