我有一个名为答案的数组,它的长度是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/

10-15 18:38