Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript随机名称猜测器:无响应脚本问题_Javascript - Fatal编程技术网

Javascript随机名称猜测器:无响应脚本问题

Javascript随机名称猜测器:无响应脚本问题,javascript,Javascript,这是我在这里的第一篇文章,我在措辞上有困难,所以请容忍我,因为我已经在这个问题上讨论了几个小时 我的朋友和我想到了一个有趣的小功能,它可以在一定数量的试验中猜测用户名(通过标记),使用随机数函数从编号为0-25的字母表数组中访问字符串字母。该函数还应该为用户提供猜测其姓名所需的试验次数 我一直得到一个无响应的脚本(第33行-包含第二个“for循环”的行) var-goal=document.getElementById(“您的名字”).value; 变量字母表=[“a”、“b”、“c”、“d”、

这是我在这里的第一篇文章,我在措辞上有困难,所以请容忍我,因为我已经在这个问题上讨论了几个小时

我的朋友和我想到了一个有趣的小功能,它可以在一定数量的试验中猜测用户名(通过
标记),使用随机数函数从编号为0-25的字母表数组中访问字符串字母。该函数还应该为用户提供猜测其姓名所需的试验次数

我一直得到一个无响应的脚本(第33行-包含第二个“for循环”的行)

var-goal=document.getElementById(“您的名字”).value;
变量字母表=[“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试验=0;
var guessArray=新数组();
var i;
var n;
对于(i=0;i
任何帮助或试图帮助都将不胜感激


如果有人想知道:我们的这个小想法是通过试验来测试Javascript随机函数的随机性(他在MatLab中编写了相同的程序,所以我们将比较两种语言的随机函数的结果)。

这就是我最终使它工作的方式(通过将while循环和second for循环嵌套在另一个for循环中):

var-goal=document.getElementById(“您的名字”).value;
var goalArray=goal.split(“”);
变量字母表=[“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试验=0;
var guessArray=[];
对于(i=0;i
goalArray!=guessArray
始终为真,因为它们是两个独立的数组;即使它们包含相同的元素


因为它们看起来只是a-z中单个字母的数组,所以您可以将它们与
goalArray+'''.=guessArray
之类的东西进行比较,因为
toString()
的数组将正确比较。

goalArray!=guessArray
始终是正确的,因为它们是两个独立的数组;即使它们包含相同的元素。您需要一种称为深度比较的方法,幸运的是,鉴于您的数组没有非常复杂的结构,它没有那么昂贵。有一些库可以帮助实现这一点,例如
lodash
下划线
@woozyking,或者因为它们似乎只是
a-z
中的单个字母数组,您可以将它们与
goalArray+'''=guestarray
之类的东西进行比较,因为
toString()
的数组将正确比较。@Paulpro你说得对,在这个用例中这是一种更好的技术谢谢各位,我成功了!当我获得特权时,我会给你一个。
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";
    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"; 
    }
}