在第6章末尾的“儿童JavaScript”中,创建随机字符串生成器存在这一挑战,从var alphabet =“abcdefghijklmnopqrstuvwxyz”中取出的字母; 在本书中,autor专门请求使用我做的WHILE循环。
我发现正确的答案需要FOR循环,如下所示:
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";
var stringLength = 6;
for (var i = 0; i < stringLength; i++) {
randomString += alphabet[Math.floor(Math.random() * alphabet.length)];
}
console.log(randomString);
我的问题:是否可以对WHILE循环进行相同的操作?
答案 0 :(得分:3)
每个for
循环都可以写成while
循环。通常,您的for
循环描述符有三个表达式:初始化,条件和某种增量。我们称这些为a
,b
和c
。
然后这个:
for (a; b; c) {
// ...
}
相当于:
a;
while (b) {
// ...
c;
}
注意:使用let
时可能存在细微差别。
答案 1 :(得分:1)
当然,但你必须自己管理增加循环计数器:
var i = 0;
while (i < stringLength) {
randomString += alphabet[Math.floor(Math.random() * alphabet.length)];
i++;
}
恕我直言,for
循环更合适。
答案 2 :(得分:1)
是的,如果以正确的方式实施,您也可以这样做。检查randomString.length并将其与您选择的stringLength进行比较。
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var randomString = "";
var stringLength = 6;
while(randomString.length < stringLength){
randomString += alphabet[Math.floor(Math.random() * alphabet.length)];
}
console.log(randomString);
&#13;