Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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_Jquery - Fatal编程技术网

Javascript 未捕获引用错误:循环错误时赋值中的左侧无效

Javascript 未捕获引用错误:循环错误时赋值中的左侧无效,javascript,jquery,Javascript,Jquery,当我尝试运行此代码时,控制台中出现错误,但我不知道为什么!上面说: 未捕获引用错误:赋值中的左侧无效,它指向第31行 也就是说,行:if(colors.indexOf(String(guess\u input))=-1){ 基本上,我想做的是检查输入的字符串是否是我预定义数组的一部分,你可以在下面的代码中看到。结束点是一个猜测游戏,用户必须猜测颜色 <!DOCTYPE > <html> <head> <title>Welcome To The JS

当我尝试运行此代码时,控制台中出现错误,但我不知道为什么!上面说: 未捕获引用错误:赋值中的左侧无效,它指向第31行

也就是说,行:if(colors.indexOf(String(guess\u input))=-1){

基本上,我想做的是检查输入的字符串是否是我预定义数组的一部分,你可以在下面的代码中看到。结束点是一个猜测游戏,用户必须猜测颜色

<!DOCTYPE >
<html>
<head>
<title>Welcome To The JS Guessing Game</title>
</head>
<body onload="do_game()">
<script> 

//Initialize the variables that will be needed.
var target;
var target_index;
var guess_input;
var guesses=0;
var finished=false;
var guesses=0;
var colors = ["blue", "cyan", "gold", "green", "magenta", "orange", "red", "white", "yellow"];

function do_game(){
    var random_number = (Math.random()*colors.length);
    var random_number=Math.floor(random_number);
    target=colors[random_number];
    alert(target);
    while (!finished){
        guess_input=prompt("I am thinking of a color in the list below. Can you guess which color?"+"\n\n"+ colors.join() );
        guesses++;
        finished = check_guess();  //so finished in the function has to return true for this condition to be met.
    }
}

function check_guess(){
    if (colors.indexOf(String(guess_input))=-1){
        alert("I'm sorry, I do not recognize that color! Try again.");
        return true;
    }
    else if (guess_input > target){
        alert("Your guess is alphabetically higher than the correct answer.");
        return true;
    }
    else if (guess_input < target){
        alert("Your guess is alphabetically lower than the correct answer. ");
        return true;
    }
    else {
        myBody=document.getElementsByTagName("body")[0];
        myBody.style.background=target;
        alert("You are right! You took "+guesses+" guesses!");
        return false;
    }
}
</script>
</body>
</html>

欢迎来到JS猜谜游戏
//初始化所需的变量。
var目标;
var目标指数;
var-u输入;
var猜测=0;
var finished=false;
var猜测=0;
var颜色=[“蓝色”、“青色”、“金色”、“绿色”、“洋红”、“橙色”、“红色”、“白色”、“黄色”];
函数do_game(){
var random_number=(Math.random()*colors.length);
var随机数=数学楼层(随机数);
目标=颜色[随机数];
警报(目标);
当(!完成){
guess_input=prompt(“我正在考虑下面列表中的一种颜色。你能猜出是哪种颜色吗?”+“\n\n”+colors.join());
猜测++;
finished=check_guess();//因此函数中的finished必须返回true才能满足此条件。
}
}
函数检查_guess(){
if(colors.indexOf(字符串(猜测输入))=-1){
警报(“对不起,我不认识那个颜色!再试一次。”);
返回true;
}
否则如果(猜测输入>目标){
警惕(“你的猜测按字母顺序比正确答案高。”);
返回true;
}
else if(猜测输入<目标){
警惕(“你的猜测比正确答案的字母顺序低。”);
返回true;
}
否则{
myBody=document.getElementsByTagName(“正文”)[0];
myBody.style.background=target;
警惕(“你是对的!你做了“+猜测+”猜测!”);
返回false;
}
}
结果是第一个警报窗口出现,告诉我颜色,然后是提示,但之后,不管输入是什么,事情就停止了:( 我们将不胜感激

干杯

大卫改变了

if (colors.indexOf(String(guess_input))=-1){

您的脚本基本上尝试将值-1分配给非变量的对象。

如果(…==…),则需要
而不是
如果(…=…)
f (colors.indexOf(String(guess_input))==-1){