js实现1,2,3,5数字按照概率生成


Posted in Javascript onSeptember 12, 2017

js按照配置的概率生成,概率规则如下:
1------------50%

2------------30%

3------------15%

5------------5%

简单的代码

function myRandom() {
 var rand = Math.random();
 if (rand < .5) return 1;
 if (rand < .8) return 2;
 if (rand < .95) return 3;
 return 5;
}

复杂点的

function prizeRand(oArr) {
 var sum = 0; // 总和
 var rand = 0; // 每次循环产生的随机数
 var result = 0; // 返回的对象的key

 console.log(oArr);

 // 计算总和
 for (var i in oArr) {
  sum += oArr[i][0];
 }

 // 思路就是如果设置的数落在随机数内,则返回,否则减去本次的数
 for (var i in oArr) {
  rand = Math.floor(Math.random()*sum + 1);
  if (oArr[i][0] >= rand) {
   result = oArr[i][0];
   break;
  } else {
   sum -= oArr[i][0];
  }
 }

 return result;

}

var oArr = {'5':[5, 'Mac'], '3':[15, 'iPhone'], '2':[30, 'iPad'], '1':[50, 'iWatch']};

console.log(prizeRand(oArr));

大家可以根据需要选择,建议查看三水点靠木的上一篇文章。

Javascript 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
js自定义事件及事件交互原理概述(二)
Feb 01 Javascript
Javascript核心读书有感之词法结构
Feb 01 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
jquery ajax 如何向jsp提交表单数据
Aug 23 Javascript
javascript自动切换焦点控制效果完整实例
Feb 02 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
Mar 21 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
Jul 05 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
Oct 21 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
js数组实现权重概率分配
Sep 12 #Javascript
js 概率计算(简单版)
Sep 12 #Javascript
JavaScript面向对象精要(下部)
Sep 12 #Javascript
在Vue.js中使用Mixins的方法
Sep 12 #Javascript
JavaScript面向对象精要(上部)
Sep 12 #Javascript
JS库之ParticlesJS使用简介
Sep 12 #Javascript
关于预加载InstantClick的问题解决方法
Sep 12 #Javascript
You might like
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
利用Python优雅的登录校园网
2020/10/21 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
vue+django实现下载文件的示例
2021/03/24 Vue.js
在职人员函授期间自我评价分享
2013/11/08 职场文书
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
学校介绍信范文
2014/01/14 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
react antd实现动态增减表单
2021/06/03 Javascript
浅谈Vue的computed计算属性
2022/03/21 Vue.js
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers