때때로 배열에서 항목을 무작위로 선택해야 할 수도 있습니다. 다음은 이 효과를 얻는 방법을 소개하는 코드 예제입니다.
코드는 다음과 같습니다.
<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개의 서로 다른 데이터를 무작위로 읽습니다
방법 1
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]);
방법 2
//从一个给定的数组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 코드는 배열의 요소를 무작위로 배열할 수 있어 매우 유용합니다. 예를 들어 포커를 할 때 컴퓨터가 카드를 섞는 것처럼 포커 카드를 배열할 수 있습니다.