JavaScript 陣列隨機不重複元素

螞蟻小編發表於2019-02-28

實際應用可能需要從陣列元素中隨機取出幾個元素,並且要保證這幾個元素不重複。

有些陣列可能有重複的元素,那麼可能需要首先去除這些重複的元素。

下面是實現此效果的程式碼:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var theArray=[1,3,2,4,5,9,10,20,15];
function done(num,arr){
  var newArray=[];
  for(var index=0;index<num;index++){
    var n=Math.floor(Math.random()*theArray.length);
    newArray.push(theArray[n]);
    theArray.splice(n,1);
  }
  return newArray+"";
}
console.log(done(2,theArray));

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

一.程式碼註釋:

(1).var theArray=[1,3,2,4,5,9,10,20,15],宣告一個陣列,將會從此陣列取元素。

(2).function done(num,arr){},此函式實現了取出指定個數不重複元素效果,第一個引數是要取的個數,第二個是陣列物件。

(3).var newArray=[],宣告一個空陣列,用來存放取出的元素。

(4).for(var index=0;index<num;index++){},取出指定個數的陣列元素,這裡採用for迴圈遍歷的方式。

(5).var n=Math.floor(Math.random()*theArray.length),通過隨機數*陣列的長度可以獲取隨機的陣列索引,並將其存入變數n。

(6).newArray.push(theArray[n]),將獲取的陣列元素存入新的陣列。

(7).theArray.splice(n,1),刪除此索引位置的陣列元素。

(8).return newArray+"",將陣列轉換為字串並返回。

二.程式碼註釋:

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

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

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

(4).splice方法參閱JavaScript Array splice()一章節。 

相關文章