js獲取數(shù)組任意個(gè)不重復(fù)的隨機(jī)數(shù)組元素 原創(chuàng)
原創(chuàng) 更新時(shí)間:2010年03月15日 20:38:25 原創(chuàng) 作者:
新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過(guò)來(lái),用于運(yùn)算,而不要直接操作傳入的數(shù)組
復(fù)制代碼 代碼如下:
<script language="javascript">
//從一個(gè)給定的數(shù)組arr中,隨機(jī)返回num個(gè)不重復(fù)項(xiàng)
function getArrayItems(arr, num) {
//新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過(guò)來(lái),用于運(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ù)制出來(lái)
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ù)組本來(lái)只有10項(xiàng),但要求取出20項(xiàng).
break;
}
}
return return_array;
}
//測(cè)試
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)簡(jiǎn)單排列組合的方法
- JS實(shí)現(xiàn)的全排列組合算法示例
- JS實(shí)現(xiàn)的排列組合算法示例
- JS實(shí)現(xiàn)二維數(shù)組元素的排列組合運(yùn)算簡(jiǎn)單示例
- JavaScript隨機(jī)數(shù)的組合問(wèn)題案例分析
相關(guān)文章
Javascript和HTML5利用canvas構(gòu)建Web五子棋游戲?qū)崿F(xiàn)算法
這只是一個(gè)簡(jiǎn)單的JAVAscript和HTML5小程序,沒(méi)有實(shí)現(xiàn)人機(jī)對(duì)戰(zhàn),五子棋棋盤落子點(diǎn)對(duì)應(yīng)的二維數(shù)組,具體的實(shí)現(xiàn)算法如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07

原生Js Canvas去除視頻綠幕背景的方法實(shí)現(xiàn)
本文主要介紹了原生Js Canvas去除視頻綠幕背景的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
2023-09-09 
JS中使用new Option()實(shí)現(xiàn)時(shí)間聯(lián)動(dòng)效果
這篇文章主要介紹了JS中使用new Option()實(shí)現(xiàn)時(shí)間聯(lián)動(dòng)效果,需要的朋友可以參考下
2018-12-12 
7. Microsoft Online-Crash Control, version 6.0(微軟在線崩潰控件)
7. Microsoft Online-Crash Control, version 6.0(微軟在線崩潰控件)...
2007-08-08 
基于JavaScript實(shí)現(xiàn)百度搜索框效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)百度搜索框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
2017-07-07 
JavaScript簡(jiǎn)單獲取頁(yè)面圖片原始尺寸的方法
這篇文章主要介紹了JavaScript簡(jiǎn)單獲取頁(yè)面圖片原始尺寸的方法,可通過(guò)Image()對(duì)象直接獲取圖片的原始寬高,簡(jiǎn)單實(shí)用,需要的朋友可以參考下
2016-06-06