JS:数组的Math.random

时间:2009-10-04 15:43:37

标签: javascript arrays string return call

本周学习JS。

是否可以使用Math.random返回数组中的随机值?该值是否为字符串并且仍然有效?

5 个答案:

答案 0 :(得分:17)

您可以获取浮点数(介于0和1之间,不包括在内)并将其转换为数组的索引(0到数组长度的整数-1)。例如:

var a = ['a', 'b', 'c', 'd', 'e', 'f'];
var randomValue = a[Math.floor(a.length * Math.random())];

答案 1 :(得分:2)

是的,这确实是可能的。这是一些示例代码:

<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.floor代替Math.round,以获得统一的数字分布。

答案 2 :(得分: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我的意思。

谢谢!

答案 3 :(得分:0)

阅读本文:

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.

答案 4 :(得分:0)

您可以使用:

var array = [];
for(i = 0; i < 6; i++) {
array[i] = Math.floor( Math.random() * 60 );
}

如果你需要1到100之间的数字,只需将Math.random()* 60更改为Math.random()* 100。