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 解疑
Nov 11 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
Aug 14 Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
Mar 25 Javascript
基于jQuery的select下拉框选择触发事件实例分析
Nov 18 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
Dec 11 Javascript
Vue 组件传值几种常用方法【总结】
May 28 Javascript
简述JS浏览器的三种弹窗
Jul 15 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
浅析vue数据绑定
2017/01/17 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
Python识别验证码的实现示例
2020/09/30 Python
python 简单的调用有道翻译
2020/11/25 Python
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
网上蛋糕店创业计划书
2014/01/24 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
《识字五》教学反思
2014/03/01 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
保研推荐信
2014/05/09 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
办公用房租赁协议书
2014/11/29 职场文书
长城英文导游词
2015/01/30 职场文书
迎新生晚会主持词
2015/06/30 职场文书
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript