用递归算法实现:数组长度为 5且元素的随机数在2-32 之间的不重复的值

我在这里换了个编辑器 之前两篇用的是 markdown 的语法编辑器写的.发现插入代码的不好看.. 于是试试这个 TinyMCE 怎么样.

    var arr = new Array(5);   //首先创建一个长度为 5 的数组
    var num = randomNumber();   //获取一个随机数 调用 randomNumber()方法获取
    var i = 0;   //计数器
    randomArr(arr,num);   //处理规则的函数方法
    function randomArr(arr,num){
        if(arr.indexOf(num)<0){   //如果该随机数 arr 内没有的话,就将 arr 的第 i 个值设为该随机数 然后 i+1
            arr[i] = num;
            i++
        }else{
            num = randomNumber();   //如果随机数存在 就重新获取随机数
        }
        if(i>=arr.length){   //当 i 大于等于 arr 规定的长度的时候 就将 arr 打印出来 停止函数执行
            console.log(arr)
            return
        }else{
            randomArr(arr,num)   //否则就继续执行该函数规则
        }
        
        
    }
    
    function randomNumber(){
        return Math.floor(Math.random()*31)+2   //Math.floor()取整  Math.random()会获取到 0-1 之间的任意随机数 不包含 0 和 1. 这里取乘数为 31 的原因也是因为取整后最大永远只会是 30
    }

 

[注:] 这些题目以及答案都是在网上找的,个人认为解答的比较好的 . 出自 https://github.com/haizlin/fe-interview 特此说明

 

转载于:https://www.cnblogs.com/evilr/p/11512208.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值