近期項目中遇到一個需求,從一個列表中隨機展示列表的部分內容,需求不大,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>
