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 相关文章推荐
jquery的Theme和Theme Switcher使用小结
Sep 08 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
Mar 11 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
使用vue.js编写蓝色拼图小游戏
Mar 17 Javascript
解决vue打包之后静态资源图片失效的问题
Feb 21 Javascript
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 Javascript
详解Angular cli配置过程记录
Nov 07 Javascript
js实现带积分弹球小游戏
Jul 21 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
PHP动态柱状图实现方法
2015/03/30 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP中“=&gt;
2019/03/01 PHP
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
轻松实现python搭建微信公众平台
2016/02/16 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
基于FME使用Python过程图解
2020/05/13 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
自主招生自荐信格式
2013/12/03 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
淮海战役观后感
2015/06/11 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技