我正在为一个小项目编码,但是我的随机数组选择器不起作用
var btnarray = [xfn.left, xn.left, xnln.left, xln.left, xnn.left];
(这是数组)
var rand = btnarray[Math.floor(Math.random() * 4)];
(这是随机选择器变量)
好吧,当我开始时,rand值的结果等于btnarray [0]
有人可以帮助我吗?
哦,我完全知道变量都是不同的。
谢谢
答案 0 :(得分:0)
由于数组的长度为5,因此需要将随机函数的值乘以该数字。更好的是,使用length
属性。
var rand = btnarray[Math.floor(Math.random() * btnarray.length)];
答案 1 :(得分:0)
您不应该使用Math.floor
,因为要获取btnarray
数组中的最后一个元素会非常困难,您需要精确地获取数字{strong> {1}},以达到该元素。另外,btnarray.length
倾向于变平概率结果,并且看起来您被某些值卡住了,因为它的阈值迫使您拥有最大的整数小于或等于某个数字。
您应该改用floor
,这甚至会增加每个数组元素的概率,并为您提供更多显然个随机索引。尝试一下,它已经通过虚拟round
数组变量进行了测试,并且可以正常工作。
btnarray
答案 2 :(得分:0)
如果您将其扔到html文档的head标签中:
<script src="https://randojs.com/1.0.0.js"></script>
您可以这样做:
var randomValue = rando(btnarray).value
我通常会选择randojs.com,因为它几乎可以处理您需要的任何随机功能,而且简短易懂。