JS生成不重复随机数

时间:2024-02-17 07:38:58

说明

    我们可以用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>