当前位置:   article > 正文

js生成不重复的随机数(最高效,递归)_js手撕递归生成随机数

js手撕递归生成随机数
  1. //产生不重复的随机数 mynum 产生数量 mywei 生成位数 callback 回调函数
  2. var bossRand = function(mynum,mywei,callback){
  3. var RandomArr = [];
  4. var RandomTotal= 0;
  5. function createRandom(num ,wei){
  6. if(RandomArr.length==0){
  7. RandomTotal = num;
  8. }
  9. var start = "1";
  10. var end ="9";
  11. var wint = parseInt(wei);
  12. for(var i=1;i<wint;i++){
  13. start+="0"
  14. end+="0";
  15. }
  16. for(var i=0;i<parseInt(num);i++){
  17. var code =parseInt(Math.random()*parseInt(end)+parseInt(start));
  18. var str = ","+RandomArr.toString()+",";
  19. if(str.indexOf(","+code+",")==-1){
  20. RandomArr.push(code);
  21. }
  22. }
  23. //Remove duplication
  24. var cha = RandomTotal-RandomArr.length;
  25. if(cha<=0){
  26. callback(RandomArr)
  27. RandomArr=[];
  28. RandomTotal=0;
  29. return;
  30. }else{
  31. createRandom(cha,wei)
  32. }
  33. }
  34. createRandom(mynum,mywei);
  35. }

产生结果和调用方法:

感谢您的支持,写的文章如对您有所帮助,开源不易,请您打赏,谢谢啦~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/54517
推荐阅读
相关标签
  

闽ICP备14008679号