JavaScript生成四位數字或者字母隨機數

admin發表於2017-10-31

本章節通過程式碼例項介紹一下如何實現簡單的四位隨機數功能。

比較簡單的一種實現方式就是從數字和字母中隨機抽取四個不重複的字元。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function only(ele,arr){
  if(arr.length===0){
    return true;
  }
  for(var j=0;j<arr.length;j++){
    if(ele==arr[j]){
      return false;
    }else{
      return true;
    }
  }
}
 
var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"];
 
(function(){
  var randNum=null;
  var old=[];
  var str="";
  function done(){
    randNum=Math.floor(Math.random()*14);
    if(only(randNum,old)){
      str=str+arr[randNum];
      old.push(randNum);
    }
    else{
      done();
    }
  }
  for(var index=0;index<4;index++){
    done();
  }
  console.log(str);
})(arr)

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

一.程式碼註釋:

(1).function only(ele,arr){},此函式可以實現判斷指定的索引是否已經使用過了,放置隨機數出現重複。

(2).if(arr.length==0){},如果陣列為空,那麼就說明不可能是重複的情況,返回true。

(3).for(var j=0;j<arr.length;j++){},遍歷陣列元素進行比對,沒有重複返回true,否則false。

(4).var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"],獲取隨機數的陣列,當然可以進行擴充。

(5).(function(){})(arr),一個自執行函式,並傳遞一個引數。

(6).var randNum=null,宣告一個變數並賦初值為null,用來儲存隨機生成的陣列索引。

(7).var old=[],建立一個空陣列,用來儲存已經出現過的陣列索引值。

(8).var str="",建立一個空字串,用來存放生成的隨機數。

(9).function done(){},此函式可以用來獲取一個隨機數。

(10).randNum=Math.floor(Math.random()*14),獲取陣列的索引值。

(11).if(only(randNum,old)){

  str=str+arr[randNum];

  old.push(randNum);

},判斷是否已經使用過,如果沒有,則獲取陣列元素,並追加到str字串中,最後將此索引值追加到old陣列。

(12).else{  done();

},如果已經用過,那麼再獲取一次,這裡是使用遞迴的方式。

(13).for(var index=0;index<4;index++){

  done();

},使用for迴圈獲取4個隨機數。

二.相關閱讀:

(1).Math.floor()參閱JavaScript Math.floor()方法一章節。

(2).Math.random()參閱JavaScript Math.random()一章節。

(13).push()參閱JavaScript push()方法一章節。

相關文章