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事件问题
Sep 05 Javascript
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 Javascript
javascript:json数据的页面绑定示例代码
Jan 26 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
详解maxlength属性在textarea里奇怪的表现
Dec 27 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
JavaScript自定义超时API代码实例
Apr 30 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过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python学习笔记之if语句的使用示例
2017/10/23 Python
手把手教你python实现SVM算法
2017/12/27 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
《大海那边》教学反思
2014/04/09 职场文书
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android