自编函数

编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。

 

function testRan(n) {
           var arr=[]; //需要返回的数组
           //异常处理,如果n小于 2, 或者大于 32
           if(n<2 || n>32) { return; }
           if(!n) { return;}

           //判断n是否为数字
           if(!/^[0-9]+.?[0-9]*$/.test(n)) {
              return;
           }
           var scope={
                min:2,
                max:32
            };
            var nl = Math.floor(n); //取整
            for(var i=0;i<nl;i++) {

                // 产生一个随机数 
                  var num= parseInt((scope.max-scope.min) * Math.random() + 2);
                  //判断arr数组里是否含有这个num随机数
                  //arr.indexOf(num)为-1代表不包含
                   if(arr.indexOf(num)==-1) {
                    arr.push(num); 
                   }
                   else {
                     i--;
                   }  
            }
            return arr;
        }

  

 调用的方法: testRan(10) 会产生一个随机的包含10位数字的数组 ,已测试通过。 在早读上看到的一个题,拿来练手了。

 

posted @ 2017-03-07 09:33  lanyan  阅读(389)  评论(0编辑  收藏  举报