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

140
Vistas
¿Por qué la variable aleatoria solo devuelve 1 carácter?

Hola chicos, estoy tratando de generar una contraseña aleatoria usando teclas mayúsculas y minúsculas + números. el código parece funcionar, pero en lugar de devolver 20 caracteres, solo devuelve 1. El retorno parece aleatorio. El elemento debe ser reemplazado por la contraseña aleatoria cada vez que se hace clic en el botón.

HTML

 <button id = "button5" onclick = "password()">Generate password </button> <p4 id = "p4" > Your password will apear here </p4>

Este es el JavaScript

 function password (length ) { var ranpassword = ""; var chara = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ" var charalength = chara.length // there is an outside variable defining charalength = ""; I could not include that here for (var i = 0; <length ; i++) { ranpassword += chara.charAt(Math.floor(Math.random() * chara.length)); return ranpassword; } document.getElementById("p4").innerHTML = "hello there " + ranpassword; console.log(password(20)); }

cada vez que se hace clic en el botón, se devuelve una letra aleatoria en console.log y parece que no puedo entender por qué. puede alguien decirme por que? Cualquier ayuda sería genial. Gracias :)

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

0

Hiciste algún error. Prueba este código,

 function password (length) { let ranpassword = "", chara = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ", charalength = chara.length; for (var i = 0; i<length ; i++) { ranpassword += chara.charAt(Math.floor(Math.random() * chara.length)); } document.getElementById("p4").innerHTML = "hello there " + ranpassword; }
 <button id = "button5" onclick="password(20)">Generate password </button> <p4 id = "p4" > Your password will apear here </p4>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aparte de la implementación de la función de password en parte incorrecta, no está pasando una length a la función de password() en su controlador onclick .
Debe pasar la length y la password(20) :

 <button id = "button5" onclick = "password(20)">Generate password </button>
about 4 years ago · Juan Pablo Isaza Denunciar

0

como dijo @Locke, su sintaxis de bucle for es incorrecta, ya que le falta i en la comparación. Aparte de eso, su código está inundado de errores tipográficos. No cerró el bucle for y no necesitaba devolver ranpassword . Ahora que su código funciona, observe que el número que puse como parámetro en el clic en el HTML es la longitud que tendrá su contraseña. Además, en lugar de usar .chatAt , genero un número aleatorio y lo agrego a ranpassword . Por ejemplo: el bucle for obtiene chara[4], por lo que randpassword tiene la quinta letra de chara.

 function password(length) { var ranpassword = ""; var chara = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ" var charalength = chara.length // there is an outside variable defining charalength = ""; I could not include that here for (var i = 0; i < length; i++) { ranpassword += chara[(Math.floor(Math.random() * chara.length))]; } document.getElementById("p4").innerHTML = "hello there " + ranpassword; }
 <button id = "button5" onclick = "password(4)">Generate password </button> <p4 id = "p4" > Your password will apear here </p4>

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