Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

289
Views
Problema al verificar si la entrada del usuario (respuesta a una pregunta de prueba) coincide con una de las respuestas correctas en mi matriz anidada usando .includes

Objetivo: mi objetivo es comparar la entrada del usuario (respuesta a una pregunta de prueba) con una lista de respuestas correctas en una matriz (anidada). Por ejemplo, la pregunta podría ser: Nombre una marca de automóviles alemana, y la respuesta puede ser cualquiera de las siguientes: ["Volkswagen", "Audi", "Opel", "Porsche", etc.]. Si el usuario ingresa cualquiera de estas respuestas, la función debe devolver verdadero y sumar la cantidad total de preguntas respondidas correctamente. Si todas las preguntas se respondieron correctamente, quiero terminar el código con un mensaje para el usuario:

 if (numberCorrect == quizQuestions.length) { document.getElementById("correct").innerHTML = "All answers are correct";

Código de la matriz quizQuestions:

 const quizQuestions = [ "Wat is de hoofdstad van Frankrijk?", "Hoeveel benen heeft een spin?", "Wat is het grootste meer van Nederland?", "Noem een Duits automerk", "Noem een Waddeneiland", "In hoeveel dagen draait de aarde om de zon?", "Wat is de grootste oceaan ter wereld?" ];

Código de la matriz de respuestas correctas:

 const correctAnswers = [ "Parijs", 8, "IJsselmeer", ["Volkswagen", "Audi", "Opel", "Porsche", "BMW", "Mercedes", "Mercedes-Benz"], ["Texel", "Vlieland", "Terschelling", "Ameland", "Schiermonnikoog"], 365, "Stille Oceaan" ];

Problema: por alguna razón, pasar por las dos matrices de respuestas anidadas usando correctAnswers.includes(answer) no funciona. Leí que .includes no funciona en matrices anidadas, ¿es esto cierto? Mis otras preguntas de prueba con una respuesta, como: ¿Cuál es la capital de Francia?, se comparan fácilmente con la entrada del usuario usando este código básico:

 numberCorrect = 0; var answer = document.querySelector("#input0").value; if (correctAnswers[0] == answer) { numberCorrect++; }

El código anterior agrega correctamente 1 a correctAnswers.

Sin embargo, al llegar a la matriz anidada con varias respuestas posibles (p. ej., marcas de automóviles alemanas), mi respuesta correcta no funciona/se suma al número total correcto:

 answer = document.querySelector("#input3").value; if (correctAnswers.includes(answer) == true) { numberCorrect++; }

Además, parece que no puedo ser más preciso y elegir el índice correcto en la matriz principal de esta manera:

 correctAnswers[3].includes(answer)

¿Hay quizás alguien que pueda ayudar? ¡Gracias por adelantado!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede usar indexOf para verificar cadenas y matrices, ambos funcionan exactamente como se includes , vea el ejemplo a continuación

 const correctAnswers = [ "Parijs", 8, "IJsselmeer", ["Volkswagen", "Audi", "Opel", "Porsche", "BMW", "Mercedes", "Mercedes-Benz"], ["Texel", "Vlieland", "Terschelling", "Ameland", "Schiermonnikoog"], 365, "Stille Oceaan" ]; var isAnsRight = correctAnswers[3].indexOf("Audi") >= 0 console.log(isAnsRight)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!