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事件的属性列表
Mar 01 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
JS去除空格和换行的正则表达式(推荐)
Jun 14 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 Javascript
用原生js做单页应用
Jan 17 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
200行HTML+JavaScript实现年会抽奖程序
Jan 22 Javascript
用vscode开发vue应用的方法步骤
May 06 Javascript
详解elementui之el-image-viewer(图片查看器)
Aug 30 Javascript
layui实现form表单同时提交数据和文件的代码
Oct 25 Javascript
vscode 调试 node.js的方法步骤
Sep 15 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
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
用PHP代码给图片加水印
2015/07/01 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
接口可以包含哪些成员
2012/09/30 面试题
最新自我评价范文
2013/11/16 职场文书
永远是春天观后感
2015/06/12 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python