JavaScript的。从随机数组中选择元素

时间:2016-01-15 04:20:47

标签: javascript arrays random

我正在尝试制作'颜色猜测'脚本。

<body onload="do_game()">
        <script>
            var color=[blue,gold, grey,hotpink, maroon,olive,pink, purple, red,tan,];
            var random_color;
            var finished = false;
            var guess_input_text;
            var guess_input;
            var random_color = Math.floor(Math.random()*color.length);
            var guess;
            var target;

            do_game(){
                while(!finished){
                    guess_input_text = prompt("I am thinking of one of these colors\n\n"
                                                +color[]\n\n+"What color am I thinking of?\n");
                        target = color.indexOf(random_color);
                        guess_input = parseInt(guess_input_text);

                }
            }


        </script>
    </body>

它一直给我解析错误。 我放parseInt的原因是我想要用户类型颜色。 还有其他方法可以让他们猜测用户类型的颜色,直到它们正确(这应该与 target 相同)?

谢谢,

1 个答案:

答案 0 :(得分:0)

您的代码中存在相当多的语法错误。

var color = ['blue', 'gold', 'grey', 'hotpink', 'maroon', 'olive', 'pink', 'purple', 'red', 'tan'];
var random_color;
var finished = false;
var guess_input_text;
var guess_input;
var random_color = Math.floor(Math.random() * color.length);
var guess;
var target;

function do_game() {
    while (!finished) {
        guess_input_text = prompt("I am thinking of one of these colors\n\n" + color + "\n\nWhat color am I thinking of?\n");
        target = color.indexOf(random_color);
        guess_input = parseInt(guess_input_text);
    }
}

我修复了一些事情:

  • 颜色应该在引号中,因为它们是字符串
  • 要打印数组,只需使用变量名称color,而不是color[](仅当您需要访问索引color[x]处的特定项时才使用x { {1}}是一个整数
  • x需要在引号中作为字符串的一部分
  • 声明\n\n
  • 时缺少function关键字

希望这会让你更接近你的目标。还有一些与语法无关的其他问题:

  • do_game()永远不会成为finished,因此您的代码将永远运行(换句话说,无限提示)
  • 我不认为indexOf正在做你想做的事,因为true是一个索引,而不是一种颜色
  • 此处不需要
  • random_color,因为您正在比较字符串

详细说明最后一点:您希望用户键入一个颜色,这将是一个字符串。如果要将他们键入的内容转换为数字,请仅使用parseInt。您已将用户的猜测存储在parseInt中,因此您只需使用guess_input_text将其与target进行比较。