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