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

233
Views
¿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 answers
Answer question

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 Report

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 Report

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 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!