随机数组选择器 - Javascript



我正在为一个小项目编码,但我的随机数组选择器不起作用

var btnarray = [xfn.left, xn.left, xnln.left, xln.left, xnn.left];

(这是数组(

var rand = btnarray[Math.floor(Math.random() * 4)];

(这是随机选择器变量(

好吧,当我开始时,兰特值的结果等于 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 因为它几乎可以处理您需要的任何随机功能,而且它都简短且易于阅读。

最新更新