js產生不一樣的隨機數

前言:前幾天寫到一個程序,用到要使用不一樣隨機數的方法,結果愣是整了半天沒整出來,說來也是慚愧啊(虧我仍是軟件工程的學生,其實這個問題之前遇到過,只是我逃避了,哎,本身刨的坑終究會把本身陷進去,╮(╯▽╰)╭)好了,廢話很少說「上菜」了數組

 1 (function () {
 2 
 3     var N = 20;
 4     var arr = [];
 5     var ranArr = [];
 6     for (var i = 0; i < N; i++) {
 7         arr[i] = i;
 8     }
 9     console.log(arr);
10     do {
11         var index = Math.floor(Math.random() * arr.length);
12         var flag = true;
13         ranArr.push(arr[index]);
14         arr.splice(index, 1);
15         if (arr.length == 0) {
16             flag = false;
17         }
18     } while (flag);
19 
20     console.log(ranArr);
21 })();

解釋下代碼:代碼的主要思路是,先生成個0到N的數組,根據此數組的長度產生隨機數的最大值index,循環如下動做,設置標誌位flag,用於判斷arr數組的長度,每次循環把原數組index位置的數據加入到ranArr數組中去,arr數組切除這個數,直到arr數組長度爲0.dom

相關文章
相關標籤/搜索