let myQuestions = [ { question: "What's 2+2?", answers: [ { text: "4", correct: true }, { text: "2", correct: false }, { text: "10", correct: false }, { text: "1", correct: false }, ], }, { question: "What's 10+10?", answers: [ { text: "20", correct: true }, { text: "2", correct: false }, { text: "18", correct: false }, { text: "0", correct: false }, ], }, ]; function showQuestion(questionAndAnswers) { const shuffledAnswers = _.shuffle(questionAndAnswers.answers); questionTag.innerText = questionAndAnswers.question; answerTag[0].innerText = shuffledAnswers[0].text; answerTag[1].innerText = shuffledAnswers[1].text; answerTag[2].innerText = shuffledAnswers[2].text; answerTag[3].innerText = shuffledAnswers[3].text; } document.querySelectorAll(".answer").forEach((correctAnswer) => { correctAnswer.addEventListener("click", (event) => { if (myQuestions.answers == true) { console.log("s"); } }); })Básicamente, tengo mis preguntas en una matriz con las respuestas en un objeto también, la pregunta aparece en la pantalla con las respuestas mezcladas. Necesito ayuda con el último bloque de código a continuación, ¿cómo puedo verificar si el valor en el que se hizo clic es verdadero (respuesta correcta)?
<h3 id="question"></h3> <div class="answers"> <button id="answer1" class="answer"></button> <button id="answer2" class="answer"></button> <button id="answer3" class="answer"></button> <button id="answer4" class="answer"></button> </div>Agregue un atributo a las etiquetas de respuesta que indique si es la respuesta correcta. Luego puede verificar eso en el detector de eventos.
let myQuestions = [ { question: "What's 2+2?", answers: [ { text: "4", correct: true }, { text: "2", correct: false }, { text: "10", correct: false }, { text: "1", correct: false }, ], }, { question: "What's 10+10?", answers: [ { text: "20", correct: true }, { text: "2", correct: false }, { text: "18", correct: false }, { text: "0", correct: false }, ], }, ]; function showQuestion(questionAndAnswers) { const shuffledAnswers = _.shuffle(questionAndAnswers.answers); questionTag.innerText = questionAndAnswers.question; shuffledAnswers.forEach(({text, correct}, i) => { answerTag[i].innerText = text; answerTag[i].dataset.correct = correct; }; } document.querySelectorAll(".answer").forEach((answer) => { answer.addEventListener("click", (event) => { if (event.target.dataset.correct == 'true') { console.log("s"); } }); })