JS案例之8——从一个数组中随机取数

摘要:
在最近的一个项目中,我们遇到了从列表中随机显示部分列表的要求。需求很小,JS也很容易实现。它主要应用Math对象的随机方法和Array的分裂方法。其思想是首先创建一个数组,存储所有列表,计算随机数,从数组中获取与随机索引相对应的值,然后形成一个随机数组。DOCTYPEhtml˃2345从数组中随机获取数据678910111213//count数组的总长度randomCount randomCount随机显示的数字14varselRandomNum=function{15varcount=count | |10;16varrandomCount=randomCount | |3;1718vartotalArray=[],randomArray=[];19代表{20totalArray.push;21}22代表{23varrandomIndex=Math.floor;24varselectIndex=totalArray.splice[0];25randomArray.push;26}27控制台。日志28}2930selRandomNum();313233

近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,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>

免责声明:文章转载自《JS案例之8——从一个数组中随机取数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Thymeleaf(Java模板引擎)ES之5:分词器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

读取Excel文件利器LinqToExcel,比NOPI好用

由于项目要用到读excel文件存入数据库中,前一段时间也找到了NOPI试了一下,觉得还好,但是读取xlsx就报错  之后本人在google上找到了LinqToExcel 先上代码  private void LinqToExcel(string fileName)         {             var excelFile = new Exc...

javascript版万年历

1 <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 transitional//EN" "http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"...

为博客园(或网站)添加百度分享按钮 自定义调用JS代码

1、百度分享代码调用地址 http://share.baidu.com/code 根据提示,一步一步的自定义选择,最后复制自定义好的样式,添加到WEB。 2、在页首Html代码中添加复制过来的JS代码 <!--baidu分享--> <script>window._bd_share_config={"common":{"bdSnsK...

自制一个H5图片拖拽、裁剪插件(原生JS)

前言 如今的H5运营活动中,有很多都是让用户拍照或者上传图片,然后对照片加滤镜、加贴纸、评颜值之类的。尤其是一些拍照软件公司的运营活动几乎全部都是这样的。 博主也做过不少,为了省事就封装了一个简单的图片拖拽、裁剪的插件。其实网上也有很多类似的插件,只不过有的功能冗余体积大,有的甚至还依赖jquery。索性自己搞一个轻量的,只是不支持缩放功能。 DEMO(手...

PHP常见的数组遍历方式

PHP常见的数组遍历方式 在PHP开发中,数组是我们最用的PHP函数之一,并且对于数组函数的遍历方式也有很多种,如果我们熟悉PHP数组的遍历方式以及每种方式的优缺点,会让我们的程序优雅需求,不管是开发效率还是代码的执行效率上都会得到大大的提升。直线导轨滑台 1、foreach 这是我们最常见的遍历之一 $arr=['a','b','c']; forea...

js获取当前时间戳以及前一天时间戳

 js获取当前时间戳以及前一天时间戳(毫秒) var timestamp = (new Date()).getTime(); console.log(timestamp);//打印当前时间戳 console.log(timestamp-24*60*60*1000);//当前时间戳(毫秒) - 1天毫秒数 = 前一天时间戳...