随机数组选择器-Javascript
我正在为一个小项目编码,但我的随机数组选择器不工作随机数组选择器-Javascript,javascript,html,arrays,Javascript,Html,Arrays,我正在为一个小项目编码,但我的随机数组选择器不工作 var btnarray = [xfn.left, xn.left, xnln.left, xln.left, xnn.left]; (这是数组) (这是随机选择器变量) 当我开始时,rand值等于btnarray[0] 有人能帮我吗 哦,我完全知道变量都是不同的 谢谢因为数组的长度是5,所以需要将随机函数的值乘以该数字。更好的方法是使用length属性 var rand = btnarray[Math.floor(Math.random()
var btnarray = [xfn.left, xn.left, xnln.left, xln.left, xnn.left];
(这是数组)
(这是随机选择器变量)
当我开始时,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>
我通常会使用它,因为它可以处理几乎所有您需要的随机功能,而且非常简单易读。您认为它不起作用是什么意思?代码按预期工作。您需要更改的唯一一件事是在随机
btnarray[Math.floor(Math.random()*btnarray.length)]中使用数组长度代码>这是否回答了您的问题?不要发布代码中的两行代码,而是将其放在一个上下文中:这两行都在一个函数中,一行接一行吗?rand var每次与xfn.left相等。
<script src="https://randojs.com/1.0.0.js"></script>
var randomValue = rando(btnarray).value