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


今天看到一道題目,說是為什么自己前端不值錢?然后還不怎么相信,就試着做了做題目,然后。。。。。。

好吧,經過,30分鍾的磨合,寫出了一些健壯的代碼

function c(n){
    //判斷數組里是否包含一個某一項值
    function contains(arr,item){
        var flag=false;
        for(var i=0;i<arr.length;i++){
            if(arr[i]==item){
                flag=true;
            }
        }
        return flag;
    }
    //創建隨機數組
    function arrCreate(arr,n){
        while(arr.length<n){
            //隨機整數(2,32)
            item=Math.floor(Math.random()*(32-2)+2)
            if(!contains(arr,item)){
                arr.push(item);
            }
        }
    }
    //判斷參數類型
    function type(n){
        var class2type = {}
        var objs = "Boolean Number String Function Array Date RegExp Null Undefined".split(" ");
        for (var i = 0, l = objs.length; i < l; i++) {  
            class2type[ "[object " + objs[i] + "]" ] = objs[i].toLowerCase();  
        } 
        return class2type[Object.prototype.toString.call(n)];
    }
    var arr=[];
    if(type(n)!='number'){
        throw("您傳入的不是數字類型請傳入數字類型的參數")
    }
    arrCreate(arr,n);
    return arr;
}
console.log(c(5));

判斷參數類型的時候我利用的jquery源碼里的東西進行


免責聲明!

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



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