8

今週はJSを学びます。

Math.random を使用して配列内のランダムな値を返すことは可能ですか? その値は文字列であり、それでも機能しますか?

4

6 に答える 6

23

浮動小数点数 (0 と 1 の間、両端を含まない) を取り、それを配列のインデックス (0 と配列の長さ - 1 の間の整数) に変換できます。例えば:

var a = ['a', 'b', 'c', 'd', 'e', 'f'];
var randomValue = a[Math.floor(a.length * Math.random())];
于 2009-10-04T15:49:04.210 に答える
3

これを読む:

var arr = [1, 2, 3, 4, 5, 6];
var r = arr[Math.floor(Math.random()*a.length)]; // r will store a value from a pseudo-random position at arr.
于 2009-10-04T15:49:37.640 に答える
3

はい、これは確かに可能です。コード例を次に示します。

<script>
    var arr = new Array('a', 'b', 'c', 'd', 'e');
    document.write("Test " + arr[Math.floor(Math.random() * ((arr.length - 1) - 0 + 1))]);
</script>

一様な数の分布を得るには、Math.round の代わりに Math.floor を使用する必要があることに注意してください。

于 2009-10-04T15:50:27.780 に答える
1

ご助力いただきありがとうございます。

//My array was setup as such.
var arr = New Array();
arr[0]="Long string for value.";
arr[1]="Another long string.";
//etc...

あなたの助けを借りて、配列内の値の正確な数 (2) を知っているので、次のようにしました。

var randomVariable = arr[Math.floor(2*Math.random())]

次に、任意の方法で randomVariable を出力します。

ありがとう!

于 2009-10-04T20:20:52.470 に答える