Soy un novato total aquí aprendiendo a codificar :) Espero que alguien pueda arrojar algo de luz sobre lo siguiente.
Estoy escribiendo un código en JavaScript para generar una mezcla aleatoria de 6 letras del alfabeto usando un método Math.random y un bucle for.
Puedo hacer que esto funcione cuando escribo el código 'Math.floor(Math.random() * alphabet.length)' directamente en el índice de matriz; sin embargo, cuando lo asigno a una variable y lo uso como índice, termino con una letra 'aleatoria' que se duplica 6 veces.
¿Es posible asignar un valor aleatorio (usando el método Math.random) a una variable y hacer que se ejecute cada vez que pasa por el ciclo? ¡Gracias por adelantado!
Este es el código que funciona:
var alphabet = "abcdefghijklmnopqrstuvwxyz"; var randomString = ""; for (var i = 0; i < 6; i++) { randomString += alphabet[Math.floor(Math.random() * alphabet.length)]; console.log(randomString); }Ejemplo de código de salida: xuhmwg
Este código termina con letras duplicadas:
var alphabet = "abcdefghijklmnopqrstuvwxyz"; var randomString = ""; var randomNumber = Math.floor(Math.random() * alphabet.length); for (var i = 0; i < 6; i++) { randomString += alphabet[randomNumber]; console.log(randomString); }Ejemplo de código de salida: dddddd
Yo lo haría así:
function getRandomString(length) { const alphabet = "abcdefghijklmnopqrstuvwxyz"; let randomString = '' for (let i = 0; i < length; i++) { randomString += alphabet[Math.floor(Math.random() * alphabet.length)] } return randomString } console.log(getRandomString(6))Esto le da la libertad de cambiar fácilmente la longitud de su código generado y cambiar su alfabeto (puede agregar símbolos, por ejemplo).
Así es como lo haría.
var alphabet = "abcdefghijklmnopqrstuvwxyz"; var randomString = ""; for (var i = 0; i < 6; i++) { randomString += alphabet[Math.floor(Math.random() * alphabet.length)]; console.log(randomString); }