javascript获取四位数字或者字母的随机数


Posted in Javascript onJanuary 09, 2015

本章节通过代码实例介绍一下如何实现简单的四位随机数功能。
比较简单的一种实现方式就是从数字和字母中随机抽取四个不重复的字符。

代码实例如下:

function only(ele,arr){ 
 if(arr.length==0){ 
  return true; 
 } 
 for(var j=0;j<arr.length;j++){ 
  if(ele==arr[j]){ 
   return false; 
  }else{ 
   return true; 
  } 
 } 
} 
 
var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"]; 
 
(function(){ 
 var randNum=null; 
 var old=[]; 
 var str=""; 
 function done(){ 
  randNum=Math.floor(Math.random()*14); 
  if(only(randNum,old)){ 
   str=str+arr[randNum]; 
   old.push(randNum); 
  } 
  else{ 
   done(); 
  } 
 } 
 for(var index=0;index<4;index++){ 
  done(); 
 } 
 console.log(str); 
})(arr)

上面的代码实现了我们的要求,下面就介绍一下上面代码的实现过程。

一.代码注释:
1.function only(ele,arr){},此函数可以实现判断指定的索引是否已经使用过了,放置随机数出现重复。
2.if(arr.length==0){},如果数组为空,那么就说明不可能是重复的情况,返回true。
3.for(var j=0;j<arr.length;j++){},数组不为空,就遍历数组中的元素,进行比对,没有重复的就返回true,否则返回false。4.var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"],获取随机数的数组,当然可以进行扩充。
5.(function(){})(arr),一个自执行函数,并传递一个参数。
6.var randNum=null,声明一个变量并赋初值为null,用来存储随机生成的数组索引。
7.var old=[],创建一个空数组,用来存储已经出现过的数组索引值。
8.var str="",创建一个空字符串,用来存放生成的随机数。
9.function done(){},此函数可以用来获取一个随机数。
10.randNum=Math.floor(Math.random()*14),获取数组的索引值。
11.if(only(randNum,old)){
str=str+arr[randNum];
old.push(randNum);
},判断是否已经使用过,如果没有,则获取数组元素,并追加到str字符串中,最后将此索引值追加到old数组。
12.else{ done();
},如果已经用过,那么再获取一次,这里是使用递归的方式。
13.for(var index=0;index<4;index++){
done();
},使用for循环获取4个随机数。

来自:http://www.softwhy.com/forum.php?mod=viewthread&tid=16493

Javascript 相关文章推荐
比较全的JS checkbox全选、取消全选、删除功能代码
Dec 19 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
JavaScript中的遍历详解(多种遍历)
Apr 07 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 Javascript
JavaScript实现身份证验证代码实例
Aug 26 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
Oct 14 Javascript
深入了解JS之作用域和闭包
Jun 16 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 #Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 #Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 #Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 #Javascript
使用javascript实现json数据以csv格式下载
Jan 09 #Javascript
js读取csv文件并使用json显示出来
Jan 09 #Javascript
微信JS接口汇总及使用详解
Jan 09 #Javascript
You might like
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
屏蔽script注入小例子
2013/11/12 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
python中threading超线程用法实例分析
2015/05/16 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
wxPython多个窗口的基本结构
2019/11/19 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
UML设计模式笔试题
2014/06/07 面试题
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
小学生自我评价范文
2014/01/25 职场文书
业绩考核岗位职责
2014/02/01 职场文书
优秀员工评语
2014/02/10 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
总结一些Java常用的加密算法
2021/06/11 Java/Android
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL