Entonces, estoy tratando de construir un generador de contraseñas simple a través de JavaScript y la función simplemente no devolverá nada, no devolverá nada (en blanco).
let chars = "abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ" let randomPass = "" let passLen = 16 function ranNum() { for ( let i=0; i<passLen.length; i++){ let randomLetter = Math.floor(Math.random() * chars.length) + 1 randomPass += chars.charAt(randomLetter) } return randomPass } function genPass() { document.getElementById("div1").textContent = ranNum() } <button onclick="genPass()">Generate</button> <div id="div1"></div>Su ciclo for no se está ejecutando porque está solicitando passLen.length, y passLen es un número entero, no tendrá una longitud, y luego el ciclo no se ejecutará. simplemente cambie su línea for ( let i=0; i<passLen.length; i++){ a for ( let i=0; i<passLen; i++){ y funcionará bien.
let chars = "abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ" let randomPass = "" let passLen = 16 function ranNum() { console.log('generate'); for ( let i=0; i<passLen; i++){ let randomLetter = Math.floor(Math.random() * chars.length) + 1 randomPass += chars.charAt(randomLetter); console.log(randomLetter); } return randomPass } function genPass() { document.getElementById("div1").textContent = ranNum() } <div id="div1">test</div> <button onclick="genPass()">Generate password</button>Es porque tienes la propiedad de longitud en passLen y el valor de la variable es un int.
for ( let i=0; i<passLen; i++){ let randomLetter = Math.floor(Math.random() * chars.length) + 1 randomPass += chars.charAt(randomLetter) }En su bucle for, passLen no es una matriz, ya es una longitud. Entonces no necesita passLen.length solo passLen .
let chars = "abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ" let randomPass = "" let passLen = 16 function ranNum() { for (let i = 0; i < passLen; i++) { let randomLetter = Math.floor(Math.random() * chars.length) + 1 randomPass += chars.charAt(randomLetter) console.log(randomPass) } return randomPass } function genPass() { document.getElementById("div1").textContent = ranNum() } <button onclick="genPass()">Generate</button> <div id="div1"></div>