8

重複の可能性:
JavaScript配列からランダムな値を取得する

さて、ここには3つの変数があり、それぞれがじゃんけんです。JavaScriptを使用して、これらの単語の1つをランダムに生成するにはどうすればよいですか?

これまでのところ、次のようになっています。

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

cでは、JavaScriptで3つの変数、、、dおよびからランダムに選択させるにはどうすればよいeですか?

4

3 に答える 3

32

使用する:

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

デモンストレーション


質問に正確に答えるために、3つのグローバル変数を本当に保持したい場合は、次のようにすることができます。

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から配列の長さまでの10進数が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 に答える