Kev*_*vin 3 javascript arrays random
Math.random()在javascript 中能够返回1,对吧?这意味着如果我要使用它来获取我的数组上的随机索引,以下代码可能会失败:
var arr = [ 1, 2, 3 ],
index = Math.floor(Math.random() * arr.length);
// index could be 3?
alert(arr[index]);
Run Code Online (Sandbox Code Playgroud)
有人可以对此有所了解吗?
不,它从0返回含 1 独占
请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random
但请注意该页面中的警告:
请注意,由于JavaScript中的数字是具有舍入到最近偶数行为的IEEE 754浮点数,因此这些范围(不包括Math.random()本身的范围)并不精确,并且根据边界可能极其可能很少的情况下(1 2的数量级上62来计算)的通常排除上限.
但是,出于这些目的,你应该没问题.
您发布的链接将我带到一个网站,上面写着:
返回范围[0,1)中的伪随机数 - 即0(包括)和1(不包括)之间的伪随机数.随机数生成器从当前时间播种,如在Java中.
"包含"表示该值是范围的一部分,而"独占"表示该值不是该范围的一部分.
因此Math.random()返回一个从0到小于1的值.