说明
我们可以用Math.random()的方法轻松的生成 一个随机的数字,但是这个数字可能是重复的。有时候,我们需要一个不重复的随机数,可以用很多的方法来实现这个要求,以下方法是效率最高的。
解释
不重复的随机数往往是规定范围的,我们先声明一个在这个范围之内的数组,然后用sort方法对数组进行排序。而排序的方法里使用一个随机数,这个随机数使这个排序方法是不确定的。因此可以得到一个不重复的随机数组。
代码
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>随机不重复</title> 6 <script type="text/javascript"> 7 var count = 10; 8 //原始数组 9 var original = new Array; 10 //给原始数组original赋值 11 for (var i = 0; i < count; i++) { 12 original[i] = i + 1; 13 } 14 15 var d1 = new Date().getTime(); 16 //排序 17 original.sort(function() { 18 return 0.5 - Math.random(); 19 }); 20 //输出 21 for (var i = 0; i < count; i++) { 22 document.write(original[i] + " , "); 23 } 24 var d2 = new Date().getTime(); 25 document.write("<br />运算耗时" + (d2 - d1)); 26 </script> 27 </head> 28 <body> 29 </body> 30 </html>