有時候我們可能需要從數組中隨機抽出一項內容,下面就通過一段代碼實例介紹一下如何實現此效果。
代碼如下:
<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>
以上代碼可以隨機輸出數組中的元素,代碼非常的簡單,通過使用隨機數函數為數組提供一個隨機的索引即可。
從數組隨機讀取N條不同數據
方法一
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]);
方法二
//從一個給定的數組arr中,隨機返回num個不重復項 function getArrayItems(arr, num) { //新建一個數組,將傳入的數組復制過來,用於運算,而不要直接操作傳入的數組; var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } //取出的數值項,保存在此數組 var return_array = new Array(); for (var i = 0; i<num; i++) { //判斷如果數組還有可以取出的元素,以防下標越界 if (temp_array.length>0) { //在數組中產生一個隨機索引 var arrIndex = Math.floor(Math.random()*temp_array.length); //將此隨機索引的對應的數組元素值復制出來 return_array[i] = temp_array[arrIndex]; //然後刪掉此索引的數組元素,這時候temp_array變為新的數組 temp_array.splice(arrIndex, 1); } else { //數組中數據項取完後,退出循環,比如數組本來只有10項,但要求取出20項. break; } } return return_array; } //測試 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代碼可以對數組內的元素進行隨機排列,這個非常有用,比如我們在玩撲克牌的時候可以讓撲克牌進行排列,也就是電腦洗牌。