用递归算法实现:数组长度为 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 特此说明

 

posted @ 2019-09-12 15:39  Evil_r  阅读(532)  评论(0编辑  收藏  举报