js生成不重複數字陣列程式碼例項

admin發表於2017-04-16

分享一段程式碼例項,它實現了生成一個陣列的功能,並且陣列的數字元素不會有重複。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function done(len,max) {
  var arr = [];
  var count = 0;
  while (count < len) {
    var n = Math.floor(Math.random() * max + 1);
    if (arr.join().indexOf(n) == -1) {
      arr.push(n);
      count++;
    }
  }
  return arr;
}
console.log(done(9,9))

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).function done(len,max) {},第一個引數規定陣列的長度,第二個引數規定陣列中數字大小的上限。

(2).var arr = [],宣告一個空陣列,最終返回的結果陣列就是它。

(3).var count = 0,宣告一個變數並賦值為0,用作計數器。

(4).while (count < len) {},通過while迴圈來生成陣列。

(5).var n = Math.floor(Math.random() * max + 1),生成一小於等於max的隨機數。

(6).if (arr.join().indexOf(n) == -1) {

  arr.push(n);

  count++;

},檢測陣列中是否已經存在數字n,如果沒有存在,則將數字n壓入陣列。

然後計數器加1。

二.相關閱讀:

(1).Math.floor()可以參閱javascript Math.floor()一章節。

(2).Math.random()可以參閱javascript Math.random()一章節。

(3).join()可以參閱javascript join()一章節。

(4).indexOf()可以參閱javascript indexOf()一章節。

(5).push()可以參閱javascript push()一章節。

相關文章