Home > Mobile >  Random Letter Generator
Random Letter Generator

Time:05-05

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).

  • Related