这是我在这里的第一篇文章,我在写一个问题时遇到了问题,所以请耐心等待我,因为我已经在这个问题上待了好几个小时。
我的朋友和我想到了一个有趣的小功能,它应该在一定数量的试验中猜测用户的名字(通过<input>
标签),使用随机数函数来访问字母表中的字符串字母数组编号为0-25。该功能还应该为用户提供猜测其名称所需的试验次数。
我一直收到一个无响应的脚本,(第33行 - 包含第二个“for循环”的行)。
var goal = document.getElementById("your_Name").value;
var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var goalArray = goal.split("");
var trials = 0;
var guessArray = new Array();
var i;
var n;
for (i = 0; i < goalArray.length; i++){
guessArray.push(alphabet[Math.floor(Math.random()*26)]);
}
while (goalArray != guessArray){
trials++;
guessArray = [];
for (n = 0; n < goalArray.length; n++){
guessArray.push(alphabet[Math.floor(Math.random()*26)]);
}
}
document.getElementById("appendomatic").innerHTML = "It took " + guessArray + " trials to guess correctly";
非常感谢任何帮助或尝试提供帮助!
如果有人想知道:我们的这个小想法是通过试验来测试Javascript随机函数的随机性(他在MatLab中制作了相同的程序,所以我们将比较两种语言的随机函数的结果)。
答案 0 :(得分:1)
这就是我最终使它工作的方式(通过在另一个for循环中嵌套while循环和第二个for循环):
var goal = document.getElementById("your_Name").value;
var goalArray = goal.split("");
var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var trials = 0;
var guessArray = [];
for (i = 0; i < goalArray.length; i++){
guessArray.push(alphabet[Math.floor(Math.random()*26)]);
}
for (x = 0; x < goalArray.length; x++){
while (goalArray[x] != guessArray[x]){
trials++;
guessArray = [];
for (n = 0; n < goalArray.length; n++){
guessArray.push(alphabet[Math.floor(Math.random()*26)]);
}
}
document.getElementById("appendomatic").innerHTML = "It took " + trials + " trials to guess correctly";
}
}
答案 1 :(得分:1)
goalArray != guessArray
总是正确的,因为它们是两个独立的数组;即使它们包含相同的元素。
由于它们似乎只是a-z中单个字母的数组,您可以将它们与goalArray + '' != guessArray
之类的数字进行比较,因为数组的toString()
将会正确比较。