js实现1,2,3,5数字按照概率生成
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));
大家可以根据需要选择,建议查看我们的上一篇文章。
相关推荐
-
js数组实现权重概率分配
今天写了一个js控制页面轮播的功能,如果仅仅使用队列很简单,但是考虑到为每一个页面分配权重的是否变的异常复杂,使用switch和if else也无法解决,于是想到使用js数组实现,思路是将各个轮播的页面抽象成一个对象,各个对象需要手动指定权重值,然后组成一个数组,使用下面封装的函数,将会根据各个对象相应的权重概率返回一个对象,代码如下: /** * js数组实现权重概率分配 * @param Array arr js数组,参数类型[Object,Object,Object--] * @retur
-
详解JavaScript按概率随机生成事件
最近做了一个JavaScript按概率随机生成事件,于是整理了一下思路,写了一个小demo: /* *在抽奖的活动中经常会用到这个算法,不同奖项的获取概率不同,要按概率去随机生成对应的奖品 * */ function random(arr1, arr2) { var sum = 0, factor = 0, random = Math.random(); for(var i = arr2.length - 1; i >= 0; i--) { sum += arr2[i]; // 统计概率总和 }
-
js 概率计算(简单版)
核心代码: //7:3运算 if(Math.ceil(Math.random()*10)>3){ //占比=7 alert('7'); window.location.href="http://www.baidu.com" rel="external nofollow" ; }else{ //占比=3 alert(3); widnow.location.href="http://www.jb51.net"; } 通过随机数大小来判断,最好访
-
js实现1,2,3,5数字按照概率生成
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 pri
-
js控制文本框只输入数字和小数点的方法
本文实例讲述了js控制文本框只输入数字和小数点的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, "");//清除"数字"和"."以外的字符 obj.value = obj.value.replace(/^\./g, "");//验证第一个字符是数字而不是. obj.
-
js实现在字符串中提取数字
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ
-
JS验证输入的是否是数字及保留几位小数问题
1.验证方法 validationNumber(e, num) e代表标签对象,num代表保留小数位数 function validationNumber(e, num) { var regu = /^[0-9]+\.?[0-9]*$/; if (e.value != "") { if (!regu.test(e.value)) { alert("请输入正确的数字"); e.value = e.value.substring(0, e.value.length -
-
vue.js实现带日期星期的数字时钟功能示例
本文实例讲述了vue.js实现带日期星期的数字时钟功能.分享给大家供大家参考,具体如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>www.jb51.net vue.js带日期星期数字时钟</title> <style type="text/css"> html, body { height: 100%;
-
js实现一个逐步递增的数字动画
目录 背景 实现类似滚轮的效果,容器固定,数字向上滚动 利用两个元素实现滚动 利用H5的requestAnimationFrame()API实现数字逐步递增的动画效果 计时器对比 requestAnimationFrame实现滚动动画思路 成果展示 背景 可视化大屏项目使用最多的组件就是数字组件,展示数据的一个变化,为了提高视觉效果,需要给数字增加一个滚动效果,实现一个数字到另一个数字逐步递增的滚动动画. 先上一个思维导图: 实现类似滚轮的效果,容器固定,数字向上滚动 先列举所有的可能的值形成一
-
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
接着这篇文章Node.js+jade抓取博客所有文章生成静态html文件的实例继续,在这篇文章中实现了采集与静态文件的生成,在实际的采集项目中, 应该是先入库再选择性的生成静态文件. 那么我选择的数据库是mongodb,为什么用这个数据库,因为这个数据库是基于集合,数据的操作基本是json,与dom模块cheerio具有非常大的亲和力,cheerio处理过滤出来的数据,可以直接插入mongodb,不需要经过任何的处理,非常的便捷,当然跟node.js的亲和力那就不用说了,更重要的是,性能很棒.这
-
js限制文本框只能输入数字(正则表达式)
好了,言归正传.话说我在网上找了很多限制文本框的办法都不尽人意,于是只好自己动手实践了,实践出真知嘛,这句话没错的. 复制代码 代码如下: function chkPrice(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //必须保证第一位为数字而不是. obj.value = obj.value.replace(/^\./g,""); //保证只有出现一个.而没有多个. obj.value = obj.val
-
JS限制文本框只能输入数字和字母方法
限制只能输入数字 复制代码 代码如下: // ---------------------------------------------------------------------- // <summary> // 限制只能输入数字 // demo: $(".onlyNum").onlyNum(); 限制使用了onlyNum类样式的控件只能输入数字 // </summary> // --------------------------------------
-
js限制文本框只能输入数字方法小结
有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等代码. 例如,输入大于0的正整数 复制代码 代码如下: <input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.valu
随机推荐
- mysql 启动1067错误及修改字符集重启之后复原无效问题
- eWebEditor_v280_Free_Final最好用的网页编辑器下载
- 自学成才的秘密:115个 web Develop 资源
- 简约JS日历控件 实例代码
- 15个postgresql数据库实用命令分享
- jQuery中对未来的元素绑定事件用bind、live or on
- jQuery Deferred和Promise创建响应式应用程序详细介绍
- 在Virtual PC 中安 装ms dos 6.22 的方法
- sql server 2000阻塞和死锁问题的查看与解决方法
- Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)
- 非常不错的flash采集程序测试通过
- 一个sql查询器,自动画表格填字段
- jsp和servlet操作mysql中文乱码问题的解决办法
- 总结两个Javascript的哈稀对象的一些编程技巧
- MySQL修改root账号密码的方法
- vbs 函数 获取数组字符串的最后一个LastOne 挺方便的
- 网页中的图片的处理方法与代码
- Android高效加载大图、多图解决方案 有效避免程序OOM
- Android的Glide库加载图片的用法及其与Picasso的对比
- Python中的默认参数实例分析