![](/img/trans.png)
[英]JavaScript Random Picker From Array with “Add Name to Array” Feature
[英]Random Array Picker - Javascript
我正在为一个小项目编码,但我的随机数组选择器不起作用
var btnarray = [xfn.left, xn.left, xnln.left, xln.left, xnn.left];
(这是数组)
var rand = btnarray[Math.floor(Math.random() * 4)];
(这是随机选择器 var)
好吧,当我开始时,rand 值的结果等于 btnarray[0]
任何人都可以帮助我吗?
哦,我完全知道变量都是不同的。
谢谢
由于数组的长度为 5,因此您需要将随机函数的值乘以该数字。 更好的是,使用length
属性。
var rand = btnarray[Math.floor(Math.random() * btnarray.length)];
您不应该使用Math.floor
因为它很难获取btnarray
数组中的最后一个元素,您需要准确获取btnarray.length
的数字才能获取该元素。 此外, floor
往往会使概率结果变平,并且看起来您被困在某些值上,因为它的阈值迫使您拥有小于或等于某个数字的最大整数。
您应该使用round
代替,这甚至会是每个数组元素的概率,并且会给您更明显的随机索引。 试试这个,它已经用一个虚拟的btnarray
数组变量进行了测试并且工作正常。
var rand = btnarray[Math.round(Math.random() * btnarray.length)];
如果你把它扔到你的 html 文档的 head 标签中:
<script src="https://randojs.com/1.0.0.js"></script>
你可以这样做:
var randomValue = rando(btnarray).value
我通常使用randojs.com,因为它几乎可以处理您需要的任何随机功能,而且都很简短易读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.