javascript實(shí)現(xiàn)數(shù)組中的內(nèi)容隨機(jī)輸出
有時(shí)候我們可能需要從數(shù)組中隨機(jī)抽出一項(xiàng)內(nèi)容,下面就通過(guò)一段代碼實(shí)例介紹一下如何實(shí)現(xiàn)此效果。
代碼如下:
<script type="text/JavaScript">
var theArray=new Array();
theArray[0]="腳本之家";
theArray[1]="腳本之家一";
theArray[2]="腳本之家二";
theArray[3]="腳本之家三";
theArray[4]="腳本之家四";
theArray[5]="腳本之家五";
theArray[6]="腳本之家六";
function ranFun()
{
return parseInt(Math.random()*7);
}
document.write(theArray[ranFun()]);
</script>
以上代碼可以隨機(jī)輸出數(shù)組中的元素,代碼非常的簡(jiǎn)單,通過(guò)使用隨機(jī)數(shù)函數(shù)為數(shù)組提供一個(gè)隨機(jī)的索引即可。
從數(shù)組隨機(jī)讀取N條不同數(shù)據(jù)
方法一
var ary = new Array();
var xiaowu=new Array(
“1我的
“,
“2我的
“,
“3我的
“,
“4我的
“,
“5我的
“,
“6我的
“,
“7我的
“,
“8我的
“,
“9我的
“,
“10我的
“,
“11我的
“,
“12我的
“,
“13我的
“,
“14我的
“,
“15我的
“,
“16我的
“,
“17我的
“,
“18我的
“,
“19我的
“,
“20我的
”
);
var s01=xiaowu.length
while(ary.length < 6)
{
var tmp =xiaowu[parseInt(Math.random()*s01)]
var b = false;
for (var i=0; i<ary.length; i++)
{
if (ary[i] == tmp)
{
b = true;
break;
}
}
if (!b)
ary[ary.length] = tmp;
}
document.write(ary[0]);
document.write(ary[1]);
document.write(ary[2]);
document.write(ary[3]);
document.write(ary[4]);
document.write(ary[5]);
方法二
//從一個(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 ArrList=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33];
alert(getArrayItems(ArrList,6));
這段JS代碼可以對(duì)數(shù)組內(nèi)的元素進(jìn)行隨機(jī)排列,這個(gè)非常有用,比如我們?cè)谕鎿淇伺频臅r(shí)候可以讓撲克牌進(jìn)行排列,也就是電腦洗牌。
- javascript數(shù)組去重的六種方法匯總
- JavaScript數(shù)組對(duì)象賦值用法實(shí)例
- JavaScript數(shù)組各種常見(jiàn)用法實(shí)例分析
- 淺談Javascript數(shù)組的使用
- javascript數(shù)組排序匯總
- javascript中數(shù)組方法匯總
- JavaScript通過(guò)select動(dòng)態(tài)更換圖片的方法
- javascript實(shí)現(xiàn)無(wú)限級(jí)select聯(lián)動(dòng)菜單
- javascript模擬select,jselect的方法實(shí)現(xiàn)
- JavaScript實(shí)現(xiàn)將數(shù)組數(shù)據(jù)添加到Select下拉框的方法
相關(guān)文章
防止按鈕在短時(shí)間內(nèi)被多次點(diǎn)擊的方法
一個(gè)按鈕可以在短時(shí)間內(nèi)多次點(diǎn)擊,那么有可能會(huì)被用戶惡意點(diǎn)擊,下面有個(gè)不錯(cuò)的方法可以有效制止,希望對(duì)大家有所幫助2014-03-03
JavaScript實(shí)現(xiàn)對(duì)JSON對(duì)象數(shù)組數(shù)據(jù)進(jìn)行分頁(yè)處理
這篇文章主要介紹了使用JavaScript實(shí)現(xiàn)對(duì)JSON對(duì)象數(shù)組數(shù)據(jù)進(jìn)行分頁(yè)處理,文中有詳細(xì)的代碼示例供大家參考,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-10-10
layer子層給父層頁(yè)面元素賦值,以達(dá)到向父層頁(yè)面?zhèn)髦档男Ч麑?shí)例
下面小編就為大家?guī)?lái)一篇layer子層給父層頁(yè)面元素賦值,以達(dá)到向父層頁(yè)面?zhèn)髦档男Ч麑?shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
JS學(xué)習(xí)筆記之原型鏈和利用原型實(shí)現(xiàn)繼承詳解
這篇文章主要介紹了JS學(xué)習(xí)筆記之原型鏈和利用原型實(shí)現(xiàn)繼承,結(jié)合實(shí)例形式詳細(xì)分析了javascript原型鏈以及利用原型實(shí)現(xiàn)繼承的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-05-05
JavaScript異步編程操作實(shí)現(xiàn)介紹
異步(Asynchronous, async)是與同步(Synchronous, sync)相對(duì)的概念。在我們學(xué)習(xí)的傳統(tǒng)單線程編程中,程序的運(yùn)行是同步的,同步不意味著所有步驟同時(shí)運(yùn)行,而是指步驟在一個(gè)控制流序列中按順序執(zhí)行,而異步的概念則是不保證同步的概念2022-09-09

