編寫一個js函數,該函數有一個n(數字類型),其返回值是一個數組,該數組內是n個隨機且不重復的整數,且整數取值范圍是[2,32]


首先定義個fn用來返回整數的取值范圍:

function getRand(a,b){
    var rand = Math.ceil(Math.random()*(b-a)+a);
    return rand;
}

再寫一個func用來做去重校驗:

function checkArrIn(rand,array){
    if(array.indexOf(rand) > -1){
        return true
    }
    return false;
}

最后是整體實現:

function fn(n, min, max) {
    var arr = [];
    var isNum = !isNaN(Number(n));//判斷n是不是一個數字,包含字符串類型的數字
    var isRandOk = (n >= min && n <= max && n <= (max - min)) ? true : false;//判斷n的取值是否符合要求
    if (n && isRandOk && isNum) {
        for (var i = 0; i < n; i++) {
            var rand = getRand(min, max);
            if (checkArrIn(rand, arr)) {
                i--
            } else {
                arr.push(rand)
            }
        }
    }
    return arr;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM