当前位置:首页 > 日记 > 正文

详解JavaScript按概率随机生成事件

详解JavaScript按概率随机生成事件

最近做了一个JavaScript按概率随机生成事件,于是整理了一下思路,写了一个小demo:

/**在抽奖的活动中经常会用到这个算法,不同奖项的获取概率不同,要按概率去随机生成对应的奖品**/function random(arr1, arr2) {  var sum = 0,    factor = 0,    random = Math.random();  for(var i = arr2.length - 1; i >= 0; i--) {    sum += arr2[i]; // 统计概率总和  };  random *= sum; // 生成概率随机数  for(var i = arr2.length - 1; i >= 0; i--) {    factor += arr2[i];    if(random <= factor)      return arr1[i];  };  return null;};// testvar a = ['mac', 'iphone', 'vivo', 'OPPO'];var b = [0.1, 0.2, 0.3, 0.4];console.log(random(a, b));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

详解——不让Tomcat重启

详解——不让Tomcat重启

重启,详解,电脑软件,Tomcat,要做到这样功能需要对本机有所配置一下:安装步骤:1、 在 windows 启动安装程序,在控制台输入 :java -jar dcevm-0.2-win.jar (路径放到dcevm-0.2-win.jar的文件夹)下面附件下载等一会儿,这时会出现一个程序框。选择一…

win10回收站自动清空

win10回收站自动清空

回收站,清空,电脑软件,回收站基本上是历代Windows桌面的必备摆设,它的作用就是防止用户误删除文件后没地儿哭去,属于&ldquo;后悔药&rdquo;&hellip;&hellip;不过对于某些&ldquo;系统洁癖&rdquo;用户来说,看回收站图标被一堆&ldquo;废纸&rdquo;…

jQuery is not defined 错误原因与

jQuery is not defined 错误原因与

解决方法,错误,原因,电脑软件,jQuery,通常出现这种状况有几种解决方法:1:查看是否引入jquery文件就算引入了文件了是不是通过一些整站下载器之类的软件下载的,都会出现问题,建议用迅雷到官方下载即可。2:查询路径是否错误,可以在页面源码中点…

Ai怎么制作一种文字镶嵌的效果?

Ai怎么制作一种文字镶嵌的效果?

文字,效果,电脑软件,Ai,平时使用AI软件来设计,若是直接写文字,有时候看起来就会显得很单调、乏味,若是能来点创意的设计,肯定能让人充满新鲜感,眼前一亮,比如把一张自己喜欢的,漂亮的图片填充嵌入到文字里面,又会是怎么样的感觉呢?让文字拥有了图片…

WPS文字中怎么给文章添加水印

WPS文字中怎么给文章添加水印

文字,水印,文章,电脑软件,WPS,  在文档中添加水印可以说是一种标志与象征,我们可以再很多文件中看到添加水印的形式,如&ldquo;机密文件&rdquo;、&ldquo;严禁复制&rdquo;等等,添加水印现在来说是一种趋势,更是一种&ldquo;维权&rdquo;的象征。…

Excel中出现循环引用警告的解决方

Excel中出现循环引用警告的解决方

循环引用,步骤,解决方法,电脑软件,Excel,  很多人在打开Excel的时候会频繁弹出&ldquo;循环引用警告&rdquo;这是怎么回事?是什么原因造成的?如何阻止弹出呢?今天,小编就教大家在Excel中出现循环引用警告的解决方法。Excel中出现循环引用警…

js的OOP继承实现 | 必看篇

js的OOP继承实现 | 必看篇

继承,必看,电脑软件,js,OOP,这里Student.prototype之所以使用create方法来创建,而不是直接赋Person.prototype的值,是因为如果使用赋值的话,两个就指向同一个对象,如果我们想要在student类上添加新的方法,就不行。所以要是哟呵那个create方法来…

使用Bootstrap打造特色进度条效果

使用Bootstrap打造特色进度条效果

进度条,特色,效果,电脑软件,Bootstrap,Bootstrap基本进度条实现1.外层容器使用class=progress类样式2.真正显示进度条样式的容器使用class=progress-bar类样式示例:<div class="progress"> <div class="progress-bar"></div> <!--可以…

CorelDRAW中使用轮廓描摹将简单图

CorelDRAW中使用轮廓描摹将简单图

矢量图,轮廓,图形,教程,快速,大家都知道,做设计的,尤其是印刷行业的设计,需要的大多数都是矢量文件,那么,怎样将一个图形快速变为一个大致的矢量图呢?为大家演示一下,就是用CorelDRAW中的一个简单的功能-轮廓描摹。一起去看看吧!方法/步骤:1、打开Co…

ppt2007幻灯片中删除备注的方法

ppt2007幻灯片中删除备注的方法

方法,删除,备注,幻灯,片中,  当我们在制作PPT的时候,往往会在ppt的下方进行信息备注,以备于讲课时使用。但是,当我们想删除这些备注时,该如何删除呢?下面给大家分享ppt2007删除备注的方法吧。ppt2007删除备注的方法打开PPT文件,在PPT中点击图…

如何邀请好友加入qq群qq拉好友进群

如何邀请好友加入qq群qq拉好友进群

方法,好友,电脑软件,qq,  很多人都会加入自己喜欢的qq群,当我们想要邀请好友加入一个好玩的qq群时,应该如何操作呢?下面就让小编告诉大家邀请好友加入qq群的方法,希望对大家有所帮助。邀请好友加入qq群的方法1.打开手机QQ,进入群聊2.点击右上…

AI怎么安装Xtream Path圆倒角插件?

AI怎么安装Xtream Path圆倒角插件?

插件,安装,倒角,电脑软件,AI,Xtream Path 是一款使用方便的AI插件,它将路径编辑变得十分简单。熟练使用此插件,能够有效地提升工作效率。本文主要讲解Xtream Path插件的安装。软件名称:Adobe Illustrator CS6 (AI cs6) 精简绿色中文版(32位+64…