JS设置数组随机取值,支持多个不重复【实例】
XML/HTML代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 - <html xmlns="http://www.w3.org/1999/xhtml">
 - <head>
 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 - <title>无标题文档</title>
 - </head>
 - <body Arrdata="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">
 - </body>
 - <script type="text/javascript" src="http://code.liuxinxiu.com/lib/zepto/zepto-1.1.6.js"></script>
 - <script language="javascript">
 - //从一个给定的数组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 ArrData=$("body").attr("Arrdata");
 - //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];
 - var data=ArrData.split(",");//已经是数组,直接可以用str[0]去取了
 - //alert(str[1])
 - //alert(getArrayItems(arr,2));
 - var html=getArrayItems(data,2);
 - for(var i=0;i<html.length;i++){
 - alert(html[i])
 - }
 - document.write(html)
 - </script>
 - </html>
 
 JS遍历2层DOM装入
JSON 常用类型处理
 

 2015/06/12 18:10 | by 
  
 
 
 
 
 


