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)文章
JavaScript+Node.js寫(xiě)一款markdown解析器
這篇文章主要介紹了利用JavaScript和Node.js寫(xiě)一款markdown解析器,首先編寫(xiě)getHtml函數(shù),傳入markdown文本字符串,下面更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-02-02使用layui+ajax實(shí)現(xiàn)簡(jiǎn)單的菜單權(quán)限管理及排序的方法
今天小編就為大家分享一篇使用layui+ajax實(shí)現(xiàn)簡(jiǎn)單的菜單權(quán)限管理及排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09探討JavaScript標(biāo)簽位置的存放與功能有無(wú)關(guān)系
在網(wǎng)頁(yè)中,我們可以將JavaScript代碼放在html文件中任何位置,但一般放在head或body標(biāo)簽里面。一般來(lái)說(shuō),<script>元素放在哪里與其的功能作用是緊密相關(guān)的,通過(guò)本文我們一起學(xué)習(xí)下2016-01-01javascript模擬的Ping效果代碼 (Web Ping)
JS雖然發(fā)送不了真正Ping的ICMP數(shù)據(jù)包,但Ping的本質(zhì)仍然是請(qǐng)求/回復(fù)的時(shí)間差,HTTP自然可以實(shí)現(xiàn)此功能.2011-03-03php的派發(fā)機(jī)制實(shí)現(xiàn)方法
PHP是一種動(dòng)態(tài)類(lèi)型的編程語(yǔ)言,它支持面向?qū)ο缶幊?在PHP中,派發(fā)指在運(yùn)行時(shí)確定要調(diào)用的方法或函數(shù)的過(guò)程,派發(fā)機(jī)制允許根據(jù)實(shí)際對(duì)象的類(lèi)型來(lái)選擇要執(zhí)行的方法,這種靈活性使得PHP可以實(shí)現(xiàn)多態(tài)性,本文將給大家介紹php的派發(fā)機(jī)制是怎么實(shí)現(xiàn)的,需要的朋友可以參考下2023-10-10JS實(shí)現(xiàn)動(dòng)態(tài)移動(dòng)層及拖動(dòng)浮層關(guān)閉的方法
這篇文章主要介紹了JS實(shí)現(xiàn)動(dòng)態(tài)移動(dòng)層及拖動(dòng)浮層關(guān)閉的方法,可實(shí)現(xiàn)動(dòng)態(tài)拖動(dòng)浮動(dòng)窗口及關(guān)閉窗口的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04JavaScript實(shí)現(xiàn)二分查找實(shí)例代碼
二分查找的前提為:數(shù)組、有序。這篇文章主要介紹了JavaScript實(shí)現(xiàn)二分查找實(shí)例代碼,需要的朋友可以參考下2017-02-02JavaScript的setAttribute兼容性問(wèn)題解決方法
JavaScript的setAttribute存在兼容性問(wèn)題,下面與大家分享下具體的解決方法,感興趣的朋友可以參考下2013-11-11js原生實(shí)現(xiàn)FastClick事件的實(shí)例
下面小編就為大家?guī)?lái)一篇js原生實(shí)現(xiàn)FastClick事件的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11