编写一个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源码里的东西进行
学而不思则罔,思而不结则殆,结而不看,一事无成