随机字母生成器

问题描述 投票:0回答:2

我是一个新手,正在学习如何编码:) 希望有人可以阐明以下内容。

我正在 JavaScript 中编写一些代码,使用 Math.random 方法和 for 循环生成字母表中 6 个字母的随机组合。

当我将代码“Math.floor(Math.random() * Alphabet.length)”直接写入数组索引时,我可以让它工作,但是当我将其分配给变量并将其用作索引时,我最终得到一个重复 6 次的“随机”字母。

是否可以将随机值(使用 Math.random 方法)分配给变量并让它在每次循环时执行? 预先感谢!

这是有效的代码:

var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";

for (var i = 0; i < 6; i++) {
randomString += alphabet[Math.floor(Math.random() * alphabet.length)];

console.log(randomString);
}

输出代码示例:xuhmwg

此代码最终出现重复的字母:

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);
}

输出代码示例:dddddd

javascript random
2个回答
0
投票

我不是专业人士,我知道这个问题是两年多前被问到的,但我想我仍然可以回答。这是我的第一个 StackOverflow 答案!

我相信它重复了你的字母,因为你在进入 for 循环之前使用随机数作为计算的索引。所以它会从上到下运行程序并计算数字,所以当它到达 for 循环时,它不会再次重新计算该随机数。

如果您在使用它进行索引之前在 for 循环中声明并分配了随机数变量,那么这是可行的。这样,您可以使用 for 循环并将其分配给变量,而不是像在工作示例代码中那样在索引内使用它。

const alphabet = 'abcdefghijklmnopqrstuvwxyz';
let randomString = '';

for (var i = 0; i < 6; i++) {
    let randomNum = Math.floor(Math.random() * alphabet.length);
    randomString += alphabet[randomNum];
}

console.log(randomString);


-1
投票

我就是这样做的。

var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";

for (var i = 0; i < 6; i++) {
randomString += alphabet[Math.floor(Math.random() * alphabet.length)];
console.log(randomString);
}
© www.soinside.com 2019 - 2024. All rights reserved.