8

可能重复:
从 JavaScript 数组中获取随机值

好的,所以我在这里有三个变量,每个变量是石头、纸或剪刀。使用 JavaScript,如何随机生成其中一个词?

到目前为止,它是这样的:

<!DOCTYPE html>
<html>
    <body>
        <button type="button" onclick="myFunction()"> Click me</button>

        <script>
            function myFunction()
            {
                var c="Rock";
                var d="Paper";
                var e="Scissors";
            }
        </script>
    </body>
</html>

然后我将有一个名为 K 的变量,它将是石头纸或剪刀中的随机单词。所以它会像这样:

alert("The computer chose: " + k);

那么如何让 JavaScript 在三个变量和c之间随机选择呢?de

4

3 回答 3

32

利用:

var things = ['Rock', 'Paper', 'Scissor'];
var thing = things[Math.floor(Math.random()*things.length)];
alert('The computer chose:' + thing);

示范


只是为了准确回答你的问题,假设你真的想保留你的三个全局变量,你可以这样做:

var c = "Rock";
var d = "Paper";
var e = "Scissors";
var thing = window['cde'.charAt(Math.floor(Math.random()*3))];
document.write('The computer chose: ' + thing);

示范

(但不要。)

于 2012-11-05T17:41:22.043 回答
4

您可以使用Math.random()获取 0 和 1 之间的随机数。

如果你想要一个介于 0 和 2 之间的整个随机数。(所以:0、1 或 2)。您可以使用:

Math.floor(Math.random()*3);

请注意,Math.round( 而不是floor) 在这里是错误的,因为边缘值的机会较低,您实际上可能也会得到3

于 2012-11-05T17:42:15.177 回答
1

你应该做一个数组:

var words = ['Rock', 'Paper', 'Scissors'];

然后生成一个介于 0 和数组长度之间的随机数,小数点为 0:

var number = Math.floor(Math.random() * words.length);

然后选择关键字是您刚刚创建的随机数的单词:

var word = words[number];

总共:

var words = ['Rock', 'Paper', 'Scissors'];
var word = words[Math.floor(Math.random() * words.length)];
于 2012-11-05T17:44:01.443 回答