当前位置:   article > 正文

JS 随机生成五位数_js随机生成5位数字

js随机生成5位数字

js 随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么

   记录并且介绍四种方法,而且会详细说明由来以及原因,只是一个学习的记录,请各位指正。


第一种:用的是Math.random乘100000来输出五位数,并不推荐,代码量大,而且并不是最优选择。

  1. var num = parseInt(Math.random()*100000)//首先创建一个五位数的随机数(Number)
  2. console.log(num)//打印出来
  3. //把每一位都单独提出来
  4. var one = parseInt(num/10000);
  5. var two = parseInt(num/1000%10);
  6. var thr = parseInt(num/100%10);
  7. var four= parseInt(num/10%10);
  8. var fif = num % 10;
  9. //倒着输出一下
  10. var arr = [fif,four,thr,two,one]
  11. //循环删除最后的0,这个方法笨一点,if嵌套判断
  12. for(var i = 0;i<arr.length;i++){
  13. if(Number(arr[4])===0){
  14. arr.pop()
  15. // console.log(arr,arr.length)
  16. if(Number(arr[3])===0){
  17. arr.pop()
  18. // console.log(arr,arr.length)
  19. if(Number(arr[2])===0){
  20. arr.pop()
  21. // console.log(arr,arr.length)
  22. if(Number(arr[1])===0){
  23. arr.pop()
  24. }else{break}
  25. }else{break}
  26. }else{break}
  27. }else{
  28. break;
  29. }
  30. }
  31. //输出arr这个数组,并且输出长度
  32. console.log(arr,arr.length)
  33. //接下来输出每一位
  34. console.olg(arr[0],...)

第二种:用的是Math.random乘100000来输出五位数,然后利用循环来让五位数的每一位输入到数组,需要注意的是如果等于0,需要跳出本次循环。

  1. var arr = [];//首先利用字面量生成一个空数组
  2. //利用Math.random乘100000来生成五位数(Number)
  3. var random_num = parseInt(Math.random() * 100000);
  4. //打印出来看一看
  5. console.log(random_num);
  6. //设置一个名为count的记录变量
  7. var count = 0;
  8. //for循环来为arr空数组来赋值
  9. for(var i = 0; i < 5; i++){
  10. //给这个五位数(Number)求模,第一次循环的时候是个位,第二次循环时十位...
  11. var res = random_num % 10;
  12. //如果求模等于0,证明这次生成的数为0,退出本次循环
  13. if(random_num === 0){
  14. continue;
  15. }
  16. //每一次循环都/10,然后求整,为了下一次循环求模创造条件
  17. random_num = parseInt(random_num / 10);
  18. //把每一次求模得到的数添加到数组
  19. arr.push(res);
  20. //count记录变量记录添加的次数
  21. count++;
  22. }
  23. console.log(count);
  24. console.log(arr);
  25. console.log(arr[0],...)

第三种:这种方法比较绕一点,但是和上面俩种思想不一样

利用的是生成随机数组个数然后再填入随机数

  1. //先创建函数来封装这个方法
  2. function getRnadomFiveInt(){
  3. //创建空数组
  4. var temp = [];
  5. //for循环来生成随机五个数组元素,有可能是五个||四个||其他
  6. for(var i = 0 ; i < 1 + parseInt( Math.random() * 5) ; i ++){
  7. //生成一个random_int的变量来存放0-9的随机数
  8. var random_int = parseInt( Math.random() * 10 );
  9. //如果这个数组为0位||生成的随机数为0random_int被赋值为random_int+0-9的随机数然后求模
  10. if( i === 0 && random_int === 0 ){
  11. random_int = (parseInt( Math.random() * 10 ) + random_int) % 10;
  12. }
  13. //在temp空数组中添加随机数
  14. temp.push( random_int );
  15. }
  16. //输出数组,数组长度,并且输出数组的每一位直接添加-号
  17. console.log(temp , temp.length , temp.join("-"));
  18. }
  19. //执行函数
  20. getRnadomFiveInt();

第四种:这一种和上一种的思想基本一样,不同的是这种利用了递归思想

  1. //先创建函数来封装这个方法
  2. function getRnadomFiveInt(){
  3. //创建空数组
  4. var temp = [];
  5. //for循环来生成随机五个数组元素,有可能是五个||四个||其他
  6. for(var i = 0 ; i < 1 + parseInt( Math.random() * 5) ; i ++){
  7. //生成一个random_int的变量来存放0-9的随机数
  8. var random_int = parseInt( Math.random() * 10 );
  9. //如果这个数组为0位||生成的随机数为0,返回函数,利用递归来继续循环
  10. if( i === 0 && random_int === 0 ){
  11. return getRnadomFiveInt();
  12. }
  13. //在temp空数组中添加随机数
  14. temp.push( random_int );
  15. }
  16. //输出数组,数组长度,并且输出数组的每一位直接添加-号
  17. console.log(temp , temp.length , temp.join("-"));
  18. }
  19. //执行函数
  20. getRnadomFiveInt();

上面四种方法只是自己遇到这样的题思考得出,并不代表全部,如果还有其他比较好玩的方法,欢迎留言

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

闽ICP备14008679号