js中獲得指定範圍的n個不重複的隨機數

來源:互聯網
上載者:User

標籤:資料   length   splice   bsp   數字   越界   for   get   不重複   

function getarray(arr,num){

//複製數組,不能直接在原數組上修改

var temparr=new Array();

//遍曆原數組

for(var i in arr){

//將原數組中資料一個個壓入新數組中

temparr.push(arr[i]);

}

var returnarr=new Array();

for(var i=0;i<num;i++){

//判斷數組是否還有可以取出的數字,防止下標越界

if(temparr.length>0){

//隨機產生數字在temparr的長度範圍內

var arrindex=Math,floor(Math.random()*temparr.length);

returnarr[i]=temparr[arrindex];

//刪除此索引數組

temparr.splice(arrindex,1);

}else{

//退出迴圈

break;

}

}

return returnarr;

}

//測試

var  arrlist=[1,2,3,4,5,5,54,3,2,2,4,4,67,8,8,9,9,0,77,56];

alert(getarray(arrlist,7));

js中獲得指定範圍的n個不重複的隨機數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.