我是一个新手,正在学习如何编码:) 希望有人可以阐明以下内容。
我正在 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
我不是专业人士,我知道这个问题是两年多前被问到的,但我想我仍然可以回答。这是我的第一个 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);
我就是这样做的。
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";
for (var i = 0; i < 6; i++) {
randomString += alphabet[Math.floor(Math.random() * alphabet.length)];
console.log(randomString);
}