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 相关文章推荐
JQuery Tab选项卡效果代码改进版
Apr 01 Javascript
jquery选择器之基本过滤选择器详解
Jan 27 Javascript
javascript数据类型示例分享
Jan 19 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
Mar 26 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
requireJS使用指南
Apr 27 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
bootstrap IE8 兼容性处理
Mar 22 Javascript
浅谈js的解析顺序 作用域 严格模式
Oct 23 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php UTF8 文件的签名问题
2009/10/30 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
Python pickle模块用法实例
2015/04/14 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
python读文件的步骤
2019/10/08 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
索尼巴西商店:Sony巴西
2019/06/21 全球购物
小孩百日宴答谢词
2014/01/15 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
Django路由层如何获取正确的url
2021/07/15 Python