近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现。主要是运用到了Math对象的random方法,和Array的splice方法。
思路是先新建一个数组,存放所有的列表,然后算出随机数,从数组中取出这个随机索引对应的值,然后组成一个随机数组。
源代码如下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;"> 5 <title>从一个数组中随机取数</title> 6 <meta name="author" content="rainna" /> 7 <meta name="keywords" content="rainna's js lib" /> 8 <meta name="description" content="js" /> 9 </head> 10 11 <body> 12 <script> 13 //count 数组的总长度 randomCount 随机显示的数量 14 var selRandomNum = function(count,randomCount){ 15 var count = count || 10; 16 var randomCount = randomCount || 3; 17 18 var totalArray = [],randomArray = []; 19 for(var i=0,l=count;i<l;i++){ 20 totalArray.push(i); 21 } 22 for(var i=0,l=randomCount;i<l;i++){ 23 var randomIndex = Math.floor(Math.random()*totalArray.length); 24 var selectIndex = totalArray.splice(randomIndex,1)[0]; 25 randomArray.push(selectIndex); 26 } 27 console.log(totalArray + '-----' + randomArray); 28 } 29 30 selRandomNum(); 31 </script> 32 </body> 33 </html>