I'm a total newb here learning how to code :) Hoping someone can shed some light on the following.
I'm writing some code in JavaScript to generate a random mix of 6 letters from the alphabet using a Math.random method and a for-loop.
I can get this to work when I write the code 'Math.floor(Math.random() * alphabet.length)' directly into the array index however when I assign it to a variable and use that as the index instead, I end up with a 'random' letter that's duplicated 6 times.
Is it possible to assign a random value (using the Math.random method) to a variable and have it execute each time it goes through the loop? Thanks in advance!
This is the code that works:
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";
for (var i = 0; i < 6; i ) {
randomString = alphabet[Math.floor(Math.random() * alphabet.length)];
console.log(randomString);
}
Output code example: xuhmwg
This code ends up with duplicated letters:
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);
}
Output code example: dddddd
CodePudding user response:
This is how I would do it.
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";
for (var i = 0; i < 6; i ) {
randomString = alphabet[Math.floor(Math.random() * alphabet.length)];
console.log(randomString);
}
CodePudding user response:
This is how I would do it:
First, you calculate the length of your alphabet with .length. Then, you generate a random number between 0 and 25 (the length of the alphabet) and you get the letter which has the same index. the second function does that 6 times, so you get 6 random letters.
function getRandomLetter() {
const alphabet = "abcdefghijklmnopqrstuvwxyz";
const randomNumber = Math.floor(Math.random() * alphabet.length)
const randomLetter = alphabet[randomNumber]
return randomLetter
}
function getRandomString(length) {
let randomString = ''
for (let i = 0; i < length; i ) {
randomString = getRandomLetter()
}
return randomString
}
console.log(getRandomString(6))
This gives you the freedom to easily change the length of your generated code, and change your alphabet (you can add symbols for example).