JavaScript生成四位不重复随机数(数字与字母)

作者:青柠时间:2026-10-28 19:36:34浏览:263

本文介绍使用JavaScript生成由数字和字母组成的四位不重复随机数的两种方法。第一种通过递归和索引数组确保字符不重复,第二种利用数组长度随机选取。代码包含详细注释,解析了自执行函数、递归逻辑及数组操作,适用于需要简单随机码的场景。

JavaScript生成四位不重复随机数(数字与字母)

本节通过具体代码示例,演示如何实现生成简单的四位随机数功能。其中一种较为直观的思路是,从预设的数字和字母集合中,随机抽取四个互不重复的字符进行组合。

具体的代码实现如下所示:

第一种实现:递归与索引数组


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)

上述代码能够满足基本需求,但在扩展性方面略显不足。接下来将提供一种优化后的代码方案。

第二种实现:数组随机选取

<script>
var arr=[0,1,2,3,4,5,6,7,8,9,"a","b","c","d","e","f","g"];
function done(arr,len){
  var num=arr.length;
  var code="";
  for(var index=0;index<len;index++){
    code=code+arr[parseInt(Math.random()*num)];
  }
  return code;
}
console.log(done(arr,4));
</script>

下面对优化后代码的具体实现逻辑进行详细解析。

一、代码注释说明:

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):定义一个自执行函数,并传入参数arr。6. var randNum=null:声明变量randNum并初始化为null,用于存储随机生成的数组索引。7. var old=[]:创建一个空数组old,用于记录已经出现过的数组索引值。8. var str="":创建一个空字符串str,用于拼接生成最终的随机数。9. function done(){}:定义函数done,用于获取单个随机字符。10. randNum=Math.floor(Math.random()*14):通过Math.random()生成0到1之间的随机数,乘以14后向下取整,得到数组索引。11. if(only(randNum,old)){ str=str+arr[randNum]; old.push(randNum); }:判断该索引是否已使用,若未使用,则将对应数组元素追加到str中,并将该索引加入old数组。12. else{ done(); }:若索引已使用,则递归调用done()重新获取。13. for(var index=0;index<4;index++){ done(); }:通过for循环执行4次done(),最终生成包含4个随机字符的字符串。

至此,关于JavaScript生成四位数字或字母随机数的介绍已完成。如需了解更多JS随机数相关内容,可查阅本站过往文章或继续浏览后续相关教程,感谢大家的支持!

作者最新文章