1. 程式人生 > >js從數組中隨機獲取n個不重復的數據

js從數組中隨機獲取n個不重復的數據

課堂 || 不重復 function return func () 思路 !=

做雲課堂的作業時遇到一要求,實現刷新頁面時顯示不同數據,(數組中20個據,頁面加載10個)。思路就是從0-19中隨機生成10個不同的數,讓數組取下標輸出數據。

下面是在num的範圍內生成n個不重復的數。例如從10以內隨機生成5個不同的數randomNum(10,5);

function randomNum(num,n) {
if(typeof num!=="number"||typeof n!=="number") return false;  //對象檢測
  var aNum=[];          
  if (num<=n) {
    for (var j = 0; j < num; j++) {
      aNum.push(j);
    };                  
    return aNum;
  }         //如果n大於num就生成0到num-1的每一個數
    else{
      for (var i = 0; i < num; i++) {
         var random=Math.round(Math.random()*num); 
           if (aNum.indexOf(random)==-1) {
              aNum.push(random);
              if (aNum.length==n) {
                return aNum;
              };
           }
      }  
    }
}       //從0至num-1中隨機獲得n個不同的數的數組

 

js從數組中隨機獲取n個不重復的數據