JavaScript测验类型错误:无法读取属性';0';未定义的

JavaScript测验类型错误:无法读取属性';0';未定义的,javascript,Javascript,这是我的第一个大型JavaScript项目,请原谅我无知的错误 我在上面遇到了一个奇怪的错误 我正在尝试创建一个测验,通过存储在数组中的问题进行循环。当用户单击按钮时,问题应该更新。还有,是的,这是以“办公室”为主题的测验 以下是我的JS: let q = 0; let rb1 = 0; let rb2 = 1; let rb3 = 2; let rb4 = 3; const cycle_questions = function() { const newQuestion = document

这是我的第一个大型JavaScript项目,请原谅我无知的错误

我在上面遇到了一个奇怪的错误

我正在尝试创建一个测验,通过存储在数组中的问题进行循环。当用户单击按钮时,问题应该更新。还有,是的,这是以“办公室”为主题的测验

以下是我的JS:

let q = 0;
let rb1 = 0;
let rb2 = 1;
let rb3 = 2;
let rb4 = 3;

const cycle_questions = function() {
const newQuestion = document.getElementById('nextQuestion');

newQuestion.onclick = function() {
    let currentQuestion = (quizQuestions.question[q]);
    let currentRadio1 = (quizQuestions.choices[rb1]);
    let currentRadio2 = (quizQuestions.choices[rb2]);
    let currentRadio3 = (quizQuestions.choices[rb3]);
    let currentRadio4 = (quizQuestions.choices[rb4])
    $('.question').innerHTML(currentQuestion);
    $('#r1').innerHTML(currentRadio1);
    $('#r2').innerHTML(currentRadio2);
    $('#r3').innerHTML(currentRadio3);
    $('#r3').innerHTML(currentRadio4);
    q++;
    rb1 = rb1 + 3;
    rb2 = rb2 + 3;
    rb3 = rb3 + 3;
    rb4 = rb4 + 3;
};
};
这是我的阵列:

const quizQuestions = [{
      "question": "What office employee did Michael hit with his car?",
      "choices": ["Stanley", "Angela", "Kevin" , "Meredith"],
      "correct": "Meredith"
    }, {
      "question": "During the Fire Drill episode, what DID NOT happen?",
      "choices": ["Someone breaks into the vending machine", "Someone throwing a cat into the ceiling", "Someone hides in the utility closet" , "Someone lights firecrackers"],
      "correct": "Someone hides in the utility closet"
    }];
这是我的HTML:

<form id="game">
            <div class="formContainer">
                <div class="question">Question Goes Here</div>
                <div class="choices">
                    <label id="r1">
                        <input onclick="check()" id="wrong" type="radio" name="answer"/>Answer 1
                    </label>

                    <label class="rightAnswer" id="r2">
                        <input onclick="check()" id="correct" class="correct" type="radio" name="answer"/>Answer 2
                    </label>

                    <label id="r3">
                        <input onclick="check()" id="wrong" type="radio" name="answer"/>Answer 3
                    </label>

                    <label id="r4">
                        <input onclick="check()" id="wrong" type="radio" name="answer"/>Answer 4
                    </label>
                </div>

                <input id="submitButton" class="submitButton" type="submit" value="Submit Answer">
                <button onclick="cycle_questions()" id="nextQuestion" class="nextQuestion">Next Question</button>
            </div>
        </form>

问题就在这里
答复1
答复2
答复3
答复4
下一个问题

感谢您的帮助!谢谢

您的问题在这一行:

let currentQuestion = (quizQuestions.question[q]);
因为你的quizQuestions数组没有属性问题。 相反,数组中的对象具有此属性

因此引发错误,因为quizquestion.question是“未定义”的,并且它没有属性0([q])

您可能想做的是:

let currentQuestion = (quizQuestions[q].question);
同样的情况也会发生在以下几行中:

quizQuestions.choices[rb1]...

在哪一行得到这个错误?这一行:让currentQuestion=(quizQuestions.question[q]);它特别突出了[q]@AlexWayneThank you!成功了。