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 相关文章推荐
js实现连个数字相加而不是拼接的方法
Feb 23 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
jquery中toggle函数交替使用问题
Jun 22 Javascript
js制作网站首页图片轮播特效代码
Aug 30 Javascript
JQuery遍历元素的后代和同胞实现方法
Sep 18 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
Vue如何从1.0迁移到2.0
Oct 19 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
Feb 27 Javascript
JavaScript动态添加数据到表单并提交的几种方式
Jun 26 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
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
一步一步学习PHP(8) php 数组
2010/03/05 PHP
php中常用的预定义变量小结
2012/05/09 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
jquery 防止表单重复提交代码
2010/01/21 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
简单了解python的一些位运算技巧
2019/07/13 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Python错误的处理方法
2020/06/23 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
公司员工检讨书
2014/02/08 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
社区文艺活动方案
2014/08/19 职场文书
答辩状格式范本
2015/05/22 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
使用Python拟合函数曲线
2022/04/14 Python