【问题标题】:javascript. pick element from random arrayjavascript。从随机数组中挑选元素
【发布时间】:2016-01-15 04:20:47
【问题描述】:

我正在尝试制作“猜色”脚本。

<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 相同)?

谢谢,

【问题讨论】:

  • 你必须引用那些颜色
  • `prompt("我在想这些颜色中的一种\n\n" +color[]\n\n+"我在想什么颜色?\n");`这行似乎不正确,因为 \n 应该在双引号内

标签: javascript arrays random


【解决方案1】:

您的代码中有很多语法错误。

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[](仅当您需要访问索引x 处的特定项目时使用color[x],其中x 是一个整数
  • \n\n 需要在引号中作为字符串的一部分
  • 在声明 do_game() 时缺少 function 关键字

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

  • finished 永远不会变成 true,因此您的代码将永远运行(换句话说,无限提示)
  • 我不认为 indexOf 正在做你希望它做的事情,因为 random_color 是一个索引,而不是颜色
  • parseInt 在这里是不必要的,因为您正在比较字符串

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

【讨论】:

  • 非常感谢您的帮助。我要再试一次!!
猜你喜欢
  • 2015-11-09
  • 2021-04-14
  • 2013-11-26
  • 1970-01-01
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多