Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:Math.random for数组_Javascript_Arrays_String_Return_Call - Fatal编程技术网

Javascript JS:Math.random for数组

Javascript JS:Math.random for数组,javascript,arrays,string,return,call,Javascript,Arrays,String,Return,Call,本周学习JS 是否可以使用Math.random返回数组中的随机值?该值是字符串并且仍然有效吗?您可以获取浮点数(介于0和1之间,不包括在内),并将其转换为数组的索引(介于0和数组长度-1之间的整数)。例如: var a = ['a', 'b', 'c', 'd', 'e', 'f']; var randomValue = a[Math.floor(a.length * Math.random())]; 请阅读以下内容: var arr = [1, 2, 3, 4, 5, 6]; var r

本周学习JS


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

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

var a = ['a', 'b', 'c', 'd', 'e', 'f'];
var randomValue = a[Math.floor(a.length * Math.random())];
请阅读以下内容:

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.

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

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

var arr=新数组('a','b','c','d','e');
编写(“测试”+arr[Math.floor(Math.random()*((arr.length-1)-0+1)));

请注意,应使用Math.floor而不是Math.round,以获得统一的数字分布。

感谢您的帮助

//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())]
然后按我的意愿输出随机变量

谢谢

您可以使用:

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

如果您需要一个介于1和100之间的数字,只需将Math.random()*60更改为Math.random()*100。

Math.round(Math.random()*a.length)可以返回一个等于a.length的数字,该数字不是数组的有效索引。请检查它不是a*length,它将是arr.length谢谢!我在每个数组值中使用更长的语句字符串。有没有一种方法可以在语法上写下它,这样它就不仅仅是一条非常大的线?不管你如何构造数组。重要的部分是
floor(数组的长度\u*介于0和1之间的随机值)
。您应该使用
arr.length
,而不是
2