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

147
Vistas
¿Cómo verificar la entrada del usuario para todos los valores posibles?

Escribí este código JavaScript donde definí una matriz y tomé la entrada del usuario y luego comparé la entrada y el valor de una matriz. Al verificar con éxito, la URL se concatenará con la entrada correcta del usuario, pero si el usuario proporciona una entrada incorrecta, que no está dentro de la matriz, ejecutará la parte else de la instrucción if – else . El código es exitoso hasta la inicialización de i = 0 , pero luego no funciona para los otros valores que no sean la posición 0 y siempre va a la parte else . ¿Qué estoy haciendo mal?

 var myStringArray = [ "youth", "robinson", "volvo", "bmw" ]; var arrayLength = myStringArray.length; var url = "https://abcd.com/"; var company = prompt("Input your company Code to login"); for (var i = 0; i < arrayLength; i++) { var name = myStringArray[i]; if (name == company) { window.open(url.concat(company)); } else { alert("Company Code is wrong Try again from login"); } break; }

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

0

Solo puede saber si la entrada no está en la matriz cuando ha mirado toda la matriz . Por lo tanto, no debe alertar dentro del ciclo, ni break de él en la primera iteración. Solo alerta cuando el bucle se ha completado sin encontrar la entrada.

 var myStringArray = ['youth', 'robinson', 'volvo', 'bmw']; var arrayLength = myStringArray.length; var url = "https://abcd.com/"; var company = prompt("Input your company Code to login"); for (var i = 0; i < arrayLength; i++) { var name = myStringArray[i]; if (name == company) break; } if (name == company) { window.open(url.concat(company)); } else { alert("Company Code is wrong Try again from login"); }

Tenga en cuenta que hay métodos útiles en JavaScript para este tipo de búsqueda de matrices, como includes . Además, es más común usar el operador + para concatenar cadenas:

 var myStringArray = ['youth', 'robinson', 'volvo', 'bmw']; var url = "https://abcd.com/"; var company = prompt("Input your company Code to login"); if (myStringArray.includes(company)) { window.open(url + company); } else { alert("Company Code is wrong Try again from login"); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

No debe interrumpir el bucle hasta que el bucle complete su ejecución. Debe eliminar la lógica de bloque else fuera del bucle.

Lo que está sucediendo en su caso es que cuando su ciclo encuentra un valor que no coincide en la matriz, se ejecuta la instrucción else y la instrucción break se ejecutará inmediatamente después de eso. Puede romper el bucle cuando se encuentra una combinación coincidente. De lo contrario, el ciclo debería continuar la ejecución.

violín de trabajo

 var myStringArray = ['youth', 'robinson', 'volvo', 'bmw']; var arrayLength = myStringArray.length; var url = "https://abcd.com/"; var company = prompt("Input your company Code to login"); let isFound = false; for (var i = 0; i < arrayLength; i++) { var name = myStringArray[i]; if (name == company) { isFound = true; window.open(url.concat(company)); break; } } if (!isFound) { alert("Company Code is wrong Try again from login"); }

También puede utilizar Array.find para el mismo procedimiento.

 var myStringArray = ['youth', 'robinson', 'volvo', 'bmw']; var url = "https://abcd.com/"; var company = prompt("Input your company Code to login"); let selectedCompany = myStringArray.find(item => item === company); if (selectedCompany) { window.open(url.concat(selectedCompany)); } else { alert("Company Code is wrong Try again from login"); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

break; hace que salte fuera del bucle. Está utilizando break; fuera de condición, por lo que el ciclo for se detiene después de la primera ronda de todos modos. Todo lo que necesita es eliminar el break; o agregar break; dentro de si o si no condición como usted necesita.

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