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 相关文章推荐
IE6与IE7中,innerHTML获取param的区别
Mar 15 Javascript
jQuery 性能优化手册 推荐
Feb 23 Javascript
有趣的JavaScript数组长度问题代码说明
Jan 20 Javascript
jQuery提交表单ajax查询实例代码
Oct 07 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
Jun 09 Javascript
Angular Js文件上传之form-data
Aug 28 Javascript
node模块机制与异步处理详解
Mar 13 Javascript
js数组操作方法总结(必看篇)
Nov 22 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
Angular开发者指南之入门介绍
Mar 05 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
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取整的几种方式
2013/06/25 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
javascript表单验证大全
2015/08/12 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
python可以用哪些数据库
2020/06/22 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
服务标语大全
2014/06/18 职场文书
公司车辆管理制度
2015/08/04 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android