Javascript随机名称Guesser:无响应的脚本问题

时间:2016-03-25 05:22:58

标签: javascript

这是我在这里的第一篇文章,我在写一个问题时遇到了问题,所以请耐心等待我,因为我已经在这个问题上待了好几个小时。

我的朋友和我想到了一个有趣的小功能,它应该在一定数量的试验中猜测用户的名字(通过<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中制作了相同的程序,所以我们将比较两种语言的随机函数的结果)。

2 个答案:

答案 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()将会正确比较。

相关问题