用遞歸算法實現:數組長度爲 5且元素的隨機數在2-32 之間的不重複的值

我在這裏換了個編輯器 以前兩篇用的是 markdown 的語法編輯器寫的.發現插入代碼的很差看.. 因而試試這個 TinyMCE 怎麼樣.git

    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 特此說明github

相關文章
相關標籤/搜索