随机选择 JavaScript 数组键名

9

我有一个具有连续数组键的数组,我需要随机选择其中一个键...最好的方法是什么?

3个回答

20

Math.random()会生成一个0到1之间的数字。

var key = Math.floor(Math.random() * arr.length);

10
DenisGorbachev的说法是不正确的。Math.random()返回的范围是包括0但不包括1,也就是永远不会返回1.00。如果返回了1.00,那么返回的索引将大于数组的长度。 - Kelly


-18

仅使用数组长度将导致永远无法选择数组中的最后一项,除非随机选择的数字为1.0000,这种情况极为罕见。最好在arr.length上加上.99999:

var key = Math.floor(Math.random() * (arr.length + .999999))

5
这有可能返回一个比最后一个索引大的数字。 - Kelly
1
Math.random()会返回一个介于0到1之间的数字(但不包括1)。写作[0, 1)。此外,将0.9999999添加到数组长度可能会导致越界错误。请查看所选答案。 - Steven Rogers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接