js獲取數(shù)組任意個(gè)不重復(fù)的隨機(jī)數(shù)組元素 原創(chuàng)
原創(chuàng) 更新時(shí)間:2010年03月15日 20:38:25 原創(chuàng) 作者:
新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過來,用于運(yùn)算,而不要直接操作傳入的數(shù)組
復(fù)制代碼 代碼如下:
<script language="javascript">
//從一個(gè)給定的數(shù)組arr中,隨機(jī)返回num個(gè)不重復(fù)項(xiàng)
function getArrayItems(arr, num) {
//新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過來,用于運(yùn)算,而不要直接操作傳入的數(shù)組;
var temp_array = new Array();
for (var index in arr) {
temp_array.push(arr[index]);
}
//取出的數(shù)值項(xiàng),保存在此數(shù)組
var return_array = new Array();
for (var i = 0; i<num; i++) {
//判斷如果數(shù)組還有可以取出的元素,以防下標(biāo)越界
if (temp_array.length>0) {
//在數(shù)組中產(chǎn)生一個(gè)隨機(jī)索引
var arrIndex = Math.floor(Math.random()*temp_array.length);
//將此隨機(jī)索引的對(duì)應(yīng)的數(shù)組元素值復(fù)制出來
return_array[i] = temp_array[arrIndex];
//然后刪掉此索引的數(shù)組元素,這時(shí)候temp_array變?yōu)樾碌臄?shù)組
temp_array.splice(arrIndex, 1);
} else {
//數(shù)組中數(shù)據(jù)項(xiàng)取完后,退出循環(huán),比如數(shù)組本來只有10項(xiàng),但要求取出20項(xiàng).
break;
}
}
return return_array;
}
//測試
var my_array = new Array();
for (i = 0; i < 20; i++)
{
my_array[i] = "Num:"+i;
}
my_array = getArrayItems(my_array,5);
for (i = 0; i < my_array.length; i++)
{
alert(my_array[i]);
}
</script>
您可能感興趣的文章:
- 使用js Math.random()函數(shù)生成n到m間的隨機(jī)數(shù)字
- Javascript 生成指定范圍數(shù)值隨機(jī)數(shù)
- JS生成某個(gè)范圍的隨機(jī)數(shù)【四種情況詳解】
- javascript獲取不重復(fù)的隨機(jī)數(shù)的方法比較
- js生成隨機(jī)數(shù)之random函數(shù)隨機(jī)示例
- JavaScript 產(chǎn)生不重復(fù)的隨機(jī)數(shù)三種實(shí)現(xiàn)思路
- js實(shí)現(xiàn)簡單排列組合的方法
- JS實(shí)現(xiàn)的全排列組合算法示例
- JS實(shí)現(xiàn)的排列組合算法示例
- JS實(shí)現(xiàn)二維數(shù)組元素的排列組合運(yùn)算簡單示例
- JavaScript隨機(jī)數(shù)的組合問題案例分析
相關(guān)文章
深入理解javascript動(dòng)態(tài)插入技術(shù)
這篇文章介紹了javascript動(dòng)態(tài)插入技術(shù),有需要的朋友可以參考一下2013-11-11
JavaScript實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼及校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼及校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
layui 監(jiān)聽彈窗關(guān)閉并刷新父級(jí)table的場景分析
這篇文章主要介紹了layui 監(jiān)聽彈窗關(guān)閉并刷新父級(jí)table的場景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07
你必須知道的Javascript知識(shí)點(diǎn)之"深入理解作用域鏈"的介紹
本篇文章小編為大家介紹,你必須知道的Javascript知識(shí)點(diǎn)之"深入理解作用域鏈"的介紹。需要的朋友參考下2013-04-04
Three.js實(shí)現(xiàn)3D機(jī)房效果
這篇文章主要為大家詳細(xì)介紹了Three.js實(shí)現(xiàn)3D機(jī)房效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

