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常见表单应用技巧
Jan 09 Javascript
jQuery EasyUI API 中文文档 - Form表单
Oct 06 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
Mar 10 Javascript
jquery预加载图片的方法
May 27 Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 Javascript
javascript手风琴下拉菜单实现代码
Nov 12 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
js 上传文件预览的简单实例
Aug 16 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
jquery submit()不能提交表单的解决方法
Apr 24 jQuery
JS实现元素上下左右移动效果
Oct 18 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
Mar 03 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php 定义404页面的实现代码
2012/11/19 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
javascript事件问题
2009/09/05 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
Python在线运行代码助手
2016/07/15 Python
Python制作Windows系统服务
2017/03/25 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
大课间活动制度
2014/01/18 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
消防志愿者活动方案
2014/08/23 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
先进工作者事迹材料
2014/12/23 职场文书
赢在中国观后感
2015/06/02 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书