繁体   English   中英

将变量与javascript中的特定字符串数组对象进行比较

[英]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()应用于targetguess_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM