javascript中Math.random()使用详解


Posted in Javascript onApril 15, 2015

Math.random()方法返回大于等于 0 小于 1 的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。

1. 在连续整数中取得一个随机数

值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例:产生1-10的随机数

var rand1 = Math.floor(Math.random() * 10 + 1);

编写产生startNumber至endNumber随机数的函数

function selectFrom(startNumber, endNumber) {

    var choice = endNumber - startNumber + 1;

    return Math.floor(Math.random() * choice + startNumber)

}

var rand2 = selectFrom(2,8);//产生2至8的随机数

2. 在不相邻整数中取得一个随机数

2.1 在不相邻的两个整数中取得一个随机数

例:随机产生2或4中的一个数

var rand3 = Math.random() < 0.5 ? 2 : 4;

2.2 在不相邻的多个整数中产生一个随机数

结合函数参数数组,可编写在不相邻的多个整数中产生一个随机值的函数

function selectFromMess() {

    return arguments[Math.floor(Math.random() * arguments.length)]

}

//随机产生1、6、8中的一个数

var rand4 = selectFromMess(1, 6, 8);

//也可随机产生文本

var randomTxt1 = selectFromMess("安慰奖", "二等奖", "一等奖");

每次要输入这么多参数比较麻烦,可以改写一下函数

function selectFromMessArray(arr) {

    return arr[Math.floor(Math.random() * arr.length)]

}

var arrayTxt=["一","二","三","四","五"];

var randTxt2 = selectFromMessArray(arrayTxt);

或者不改变原有方法,可以利用apply()这个方法传递数组参数

var randTxt3 = selectFromMess.apply(null,arrayTxt);

关于apply方法的使用可以看https://3water.com/article/42705.htm

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JS trim去空格的最佳实践
Oct 30 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
理解javascript中DOM事件
Dec 25 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
Sep 16 Javascript
ElementUI之Message功能拓展详解
Oct 18 Javascript
Vue——前端生成二维码的示例
Dec 19 Vue.js
js数组依据下标删除元素
Apr 14 #Javascript
js获取数组的最后一个元素
Apr 14 #Javascript
jQuery实现鼠标划过修改样式的方法
Apr 14 #Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 #Javascript
jQuery获得子元素个数的方法
Apr 14 #Javascript
jQuery简单实现遍历数组的方法
Apr 14 #Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 #Javascript
You might like
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
与文件上传有关的php配置参数总结
2013/06/14 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
如何在python中写hive脚本
2019/11/08 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
中国好声音广告词
2014/03/18 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
绿色环保标语
2014/06/12 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android