如何在JavaScript中生成随机单词?

时间:2012-11-05 17:39:45

标签: javascript random

  

可能重复:
  Getting a random value from a JavaScript array

好的,所以我这里有三个变量,每个变量都是摇滚,纸或剪刀。使用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在三个变量cde之间随机选择?

3 个答案:

答案 0 :(得分:19)

使用:

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

Demonstration


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

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);

Demonstration

(但不要。)

答案 1 :(得分:2)

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

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

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

请注意,Math.round(而不是floor)在此处错误,因为边缘值的可能性较低,实际上您可能会获得3同样。

答案 2 :(得分: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 - 1)];