我有一个名为答案的数组,它的长度是20。所以Math.floor(Math.random() * answers.length);
等效于Math.floor(Math.random() * 20);
我想从数组中的20个条目中随机选择一个,这意味着我想要1,2,3 ,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20为可能的数字;因此可以选择每个条目。那是否意味着我应该使用Math.floor(Math.random() * answers.length) + 1;
?最终,我的问题是询问是否加上“ +1”会有所不同。
例如:https://jsfiddle.net/Henry7720/v96Lj4aw/(不带1)https://jsfiddle.net/Henry7720/v96Lj4aw/1/(不带1)
最佳答案
要将Math.random()
转换为一定范围内的整数,可以使用Math.floor(Math.random() * (max - min) + min)
。请注意,这将选择至少min
但小于max
的任何数字。因为min
为0,所以可以将这些值取出,因此要从数组中获取值,请使用:
var item = array[Math.floor(Math.random() * array.length)];
编辑:同样,添加一个将使索引简单地偏移一。这意味着它将永远不会选择值
0
并在array.length
中使用一个来选择数组边界之外的值,并返回undefined
。关于javascript - 我如何使用Answers.length从数组中选择任何一项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45257964/