将变量与javascript中的特定字符串数组对象进行比较
我是javascript新手,尝试做一个简单的猜颜色游戏,下面是我的代码:将变量与javascript中的特定字符串数组对象进行比较,javascript,arrays,comparison,Javascript,Arrays,Comparison,我是javascript新手,尝试做一个简单的猜颜色游戏,下面是我的代码: <!doctype html> <html> <head> <title>Guessing Color Game</title> </head> <body onload="do_game()"> <script> var target; var colors; var finished =
<!doctype html>
<html>
<head>
<title>Guessing Color Game</title>
</head>
<body onload="do_game()">
<script>
var target;
var colors;
var finished = false;
var guess_input;
var guesses = 0;
var random_number = Math.random() * 11;
var random_number_index = Math.floor(random_number);
colors = ["Aqua", "Black", "Blue", "Brown", "Cyan", "Grey", "Green", "Orange", "Red", "White", "Yellow"];
target = colors[random_number_index];
function do_game() {
alert("Hello mate, wanna play a game???");
alert("You gotta guess a color, alright???");
alert("Available colors are: \n\n0. Aqua \n1. Black \n2. Blue \n3. Brown \n4. Cyan \n5. Grey \n6. Green \n7. Orange" +
" \n8. Red \n9. White \n10. Yellow");
alert("Random color to guess is " + target + ", which is index " + random_number_index + " in the array");
while (!finished) {
guess_input = prompt("Write the name of your chosen color please:").toLowerCase();
guesses++;
finished = check_guess();
}
}
function check_guess() {
if (target == guess_input)
return true;
}
</script>
</body>
</html>
猜颜色游戏
var目标;
变异颜色;
var finished=false;
var-u输入;
var猜测=0;
var random_number=Math.random()*11;
var随机数指数=数学下限(随机数);
颜色=[“浅绿色”、“黑色”、“蓝色”、“棕色”、“青色”、“灰色”、“绿色”、“橙色”、“红色”、“白色”、“黄色”];
目标=颜色[随机数\索引];
函数do_game(){
警惕(“你好,伙计,想玩游戏吗?”);
警惕(“你得猜颜色,好吗?”);
警报(“可用颜色为:\n\n0.Aqua\n1.Black\n2.Blue\n3.Brown\n4.Cyan\n5.Grey\n6.Green\n7.Orange”+
“\n8.红色\n9.白色\n10.黄色”);
警报(“猜测的随机颜色为“+target+”,即数组中的索引“+Random_number_index+”);
当(!完成){
guess_input=prompt(“请写下所选颜色的名称:”).toLowerCase();
猜测++;
完成=检查猜测();
}
}
函数检查_guess(){
如果(目标==猜测输入)
返回true;
}
我的问题是check_guess()函数:我有一个无限循环,因为目标没有与guess_输入进行比较。为什么会这样?试试这个:
function check_guess() {
if (target === guess_input) {
return true;
}
}
您正在使用小写的
guess\u输入检查target
颜色
相反,将.toLowerCase()
应用于目标和猜测输入,或者两者都不应用
您需要检查目标的.toLowerCase()
颜色与猜测输入的颜色
因此,您需要做的唯一更改如下:
colors[random_number_index].toLowerCase()代码>
var目标;
变异颜色;
var finished=false;
var-u输入;
var猜测=0;
var random_number=Math.random()*11;
var随机数指数=数学下限(随机数);
颜色=[“浅绿色”、“黑色”、“蓝色”、“棕色”、“青色”、“灰色”、“绿色”、“橙色”、“红色”、“白色”、“黄色”];
target=colors[random_number_index].toLowerCase();
函数do_game(){
警惕(“你好,伙计,想玩游戏吗?”);
警惕(“你得猜颜色,好吗?”);
警报(“可用颜色为:\n\n0.Aqua\n1.Black\n2.Blue\n3.Brown\n4.Cyan\n5.Grey\n6.Green\n7.Orange”+
“\n8.红色\n9.白色\n10.黄色”);
警报(“猜测的随机颜色为“+target+”,即数组中的索引“+Random_number_index+”);
当(!完成){
guess_input=prompt(“请写下所选颜色的名称:”).toLowerCase();
猜测++;
完成=检查猜测();
}
}
函数检查_guess(){
日志(目标,猜测输入)
如果(目标==猜测输入)
返回true;
}
做游戏()代码>相同的循环结果是否显示了我的答案帮助?这就是问题所在Sandeep,谢谢你的解释,现在已经清楚了。这就是问题所在Sandeep,谢谢你的解释,现在已经清楚了。@Fabrico:太好了!。如果答案有助于解决问题,则可以将其标记为已接受。