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

237
Vistas
¿Por qué no se está ejecutando mi segunda instrucción 2 else if?

No entiendo por qué mi segunda instrucción else if nunca se ejecuta. ¿Alguien puede explicar me lo?

 Name = window.prompt("Tell your First Name"); if (Name.endsWith('X') == true || Name.endsWith('x') == true) { meh = Name.slice(0, -1) console.log(meh) } else if (Name.startsWith('X') == true || Name.startsWith('x') == true) { hello = Name.slice(1) console.log(hello) } else if (Name.startsWith('X') == true || Name.startsWith('x') == true && Name.endsWith('X') == true || Name.endsWith('x') == true) { var result = Name.slice(1) && Name.slice(0, -1); console.log(result) } else { console.log(Name) }

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

0

Su código debe comenzar con lo más específico y llegar a lo mínimo. El código no verificará todos los casos y descubrirá cuál es la mejor coincidencia, comienza desde arriba y lo primero que coincide es que sale.

 const firstName = window.prompt("Tell your First Name"); const endsWith = firstName.toUpperCase().endsWith('X'); const startsWith = firstName.toUpperCase().startsWith('X'); if (startsWith && endsWith) { console.log('starts and ends'); } else if (startsWith) {console.log('starts'); } else if (endsWith) {console.log('ends'); } else {console.log('nope'); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay bastantes problemas con tu lógica. Por ejemplo:

  • Tiene una condición compuesta para verificar un carácter en una cadena, pero debe cambiar el caso de la cadena y luego determinar si el carácter que está buscando "comienza con" o "finaliza con", que parece ser el único que le preocupa.

  • en segundo lugar, las funciones "startsWith" y "endWith" devuelven naturalmente un valor booleano, por lo que equiparar el retorno con verdadero o falso sería redundante e innecesario.

  • Si de lo contrario la ejecución de uno u otro

  • De lo contrario, si ejecuta uno u otro, solo habilita la capacidad de tener en cuenta otros escenarios.

por ejemplo:

 const Name = window.prompt("Tell your First Name"); if (Name.toUpperCase().endsWith('X')) { hello = Name.slice(1) console.log(hello) } else if (Name.toUpperCase().startsWith('X')) { var result = Name.slice(1) && Name.slice(0, -1); console.log(result) } else { console.log(Name) }

es el mismo de arriba, pero se ejecutará dos veces porque el bloque se ha dividido en dos

 const Name = window.prompt("Tell your First Name"); if (Name.toUpperCase().endsWith('X')) { hello = Name.slice(1) console.log(hello) } if (Name.toUpperCase().startsWith('X')) { var result = Name.slice(1) && Name.slice(0, -1); console.log(result) } else { console.log(Name) }

about 4 years ago · Juan Pablo Isaza Denunciar

0

  1. Debes mover startsWithX && endsWithX para que sea la primera condición; de lo contrario, uno de los anteriores ocupará su lugar.
  2. Convierta su cadena a minúsculas (o mayúsculas) y elimine la necesidad de verificar dos veces X y x

 Name = window.prompt("Tell your First Name").toLowerCase(); console.log('Answer: ', Name); if (Name.startsWith('x') == true && Name.endsWith('x') == true) { var result = Name.slice(1) && Name.slice(0, -1); console.log('Starts and ends with X', result) } else if (Name.endsWith('x') == true) { meh = Name.slice(0, -1) console.log('Ends with X', meh) } else if (Name.startsWith('x') == true) { hello = Name.slice(1) console.log('Starts with X', hello) } else { console.log('Default', Name) }

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