[英]Compare a variable to an specific string array object in javascript
我是Java的新手,正在尝试做一个简单的猜彩色游戏,这是我的代码:
<!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>
我的问题是使用check_guess()函数:由于没有将目标与guess_input进行比较,我遇到了无限循环。 为什么会这样呢?
您正在使用小写的guess_input
检查target
颜色。
而是将.toLowerCase()
应用于target
和guess_input
或者两者都不应用。
你需要检查.toLowerCase()
的target
色与的guess_input
。
因此,您唯一需要做的更改如下:
colors[random_number_index].toLowerCase();
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].toLowerCase(); 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() { console.log(target, guess_input) if (target == guess_input) return true; } do_game();
尝试这个:
function check_guess() {
if (target === guess_input) {
return true;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.