Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

192
Vistas
¿Cómo verificar si un objeto tiene una clave?

Tengo un cuestionario que muestra preguntas con prompt() donde cada pregunta posterior depende de la respuesta del usuario. Y cada pregunta tiene dos respuestas y una id de pregunta para mostrar a continuación. Y el código muestra la pregunta dependiendo de la respuesta.

Y aquí viene mi pregunta. No todos tendrán dos respuestas posibles. ¿Cómo puedo mostrar las opciones de respuesta en prompt dependiendo de la presencia de answer_2 . Por ejemplo, si hay answer_2 , entonces:

 const answer = prompt(`${question}`, `${answer_1.text} / ${answer_2.text}`)

Si falta answer_2 , entonces:

 const answer = prompt(`${question}`, `${answer_1.text}`)

Aquí mi código:

 const questions = [{ id: "1", question: "q1", answer_1: { text: "a1", next_question: "2", }, answer_2: { text: "a2", next_question: "3", }, }, { id: "2", question: "q2", answer_1: { text: "a1", next_question: "", }, }, { id: "3", question: "q3", answer_1: { text: "a1", next_question: "", }, answer_2: { text: "a2", next_question: "4", }, }, { id: "4", question: "q4", answer_1: { text: "a1", next_question: "", }, }, ]; //=== question display function quiz({ question, answer_1, answer_2 }) { const answer = prompt(`${question}`, `${answer_1.text} / ${answer_2.text}`); let nextQuestion; if (answer == answer_1.text) { nextQuestion = answer_1.next_question; } else if (answer == answer_2.text) { nextQuestion = answer_2.next_question; } else { alert("Invalid answer"); } if (nextQuestion) { quiz(questions.find((q) => q.id == nextQuestion)); } } quiz(questions[0]);

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Para preguntas sin answer_2 , obtiene un valor undefined en la función de quiz . Con eso, puede usar una declaración if (answer_2) y generar lo que quiera, así:

 const questions = [ { id: "1", question: "q1", answer_1: { text: "a1", next_question: "2" }, answer_2: { text: "a2", next_question: "3" } }, { id: "2", question: "q2", answer_1: { text: "a1", next_question: "" } }, { id: "3", question: "q3", answer_1: { text: "a1", next_question: "" }, answer_2: { text: "a2", next_question: "4" } }, { id: "4", question: "q4", answer_1: { text: "a1", next_question: "" } } ]; //=== question display function quiz({ question, answer_1, answer_2 }) { let answer; if (answer_2) { answer = prompt(`${question}`, `${answer_1.text} / ${answer_2.text}`); } else { answer = prompt(`${question}`, `${answer_1.text}`); } let nextQuestion; if (answer == answer_1.text) { nextQuestion = answer_1.next_question; } else if (answer_2 && answer == answer_2.text) { nextQuestion = answer_2.next_question; } else { alert("Invalid answer"); } if (nextQuestion) { quiz(questions.find((q) => q.id == nextQuestion)); } } quiz(questions[0]);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dado que un número dividido por uno es el mismo número, 1 puede considerarse su valor predeterminado.

 const a1 = answer_1.text; const a2 = answer_2?.text || 1;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda