编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。
2017-12-19 16:34
1106 查看
function fn(n){ //判断是否是数字类型 if(isNaN(n)){ return []; } var random; var arr=[]; for (var i = 0; i < n; i++) { random=Math.floor(Math.random()*(32-2+1)+2); //判断数组里是否有重复的值 if(isArr(random,arr)){ i-- }else{ arr.push(random); } } return arr; } console.log(fn(3)) function isArr(elem,arr){ for (var j = 0, len = arr.length; j < len; j++) { if(arr[j] == elem){ return true; } } return false; }
建议实现方式
function fn(n) { var array = new Array();//创建一个空的数组,存储要返回的数组。 for(var i= 0; i<n; i++) { //获得2到32范围的随机数 var rnd = getRand(2, 32); if(isIncluded(rnd, array)) { i--; //如果数组里面有这个数,让i在下一个循环不变。 //这里的i--抵消掉了循环后的i++ } else { array.push(rnd);//如果数组里没有这个随机数,就允许添加进这个数组。 } } return array; } //传递一个数据类型和数组,判断数组内是否有前者。 function isIncluded(element, array) { for (var i = 0, len = array.length; i < len; i++) { if(array[i] == element) { return true; } } return false; } //传入一个范围,返回一个该范围的随机数。 function getRand(min, max) { //如果输入的min比max大,将它们的值交换 if( max< min) { var n = max; max = min; min = n; } //注意是max-min+1而不是max-min哦 return Math.floor(Math.random()* (max-min+1) ) + min; } //输出 demo = fn(31);//如果参数是比31还要大的数,可是会无限循环的哦。 for(var i= 0; i<demo.length; i++) { console.log(i+":"+demo[i]); }
相关文章推荐
- 编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。
- 【c语言】为下面的函数原型编写函数定义,这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- 【C语言】为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- 给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
- 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字
- 初始一个取值范围为[1,10]随机数组,去掉重复.
- 随机生成30个数字(范围0-30)存到一个数组中,将数组中重复的数字去除,动态创建数组保存剩下的数字
- 写一个函数,参数为$n,生成一个数组,其元素为1~$n,各元素位置随机排列,不得重复
- C++ - 一个非递减数组,下标从0到n,元素的取值范围为从0到n的整数,判断其中是否有重复元素
- randnumber_mn.c 生成一个数组,包括k个不重复的整数,并且要求这些整数范围为[m,n),生成的结果中不能包含inum中的数字,size表示inum的长度
- 一个长度为N的整形数组,数组中每个元素的取值范围是[0,N-1],写一个算法判断数组中是否存在重复的数字
- 为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数
- //4.创建一个数组, //实现函数init()初始化数组、 //实现empty()清空数组、 //实现reverse()函数完成数组元素的逆置。 //要求:自己设计函数的参数,返回值。
- 编写一个函数fan(int m),计算任一输入的整数的各位数字之和。
- 编写一个函数,分别统计出传入字符串参数(可能不止一个参数)的英文字母,空格,数字和其他字符的个数
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 编写一个函数将一个十六进制数的字符串参数转换成整数返回
- 编写猜字游戏,随机产生一个1-1000的整数,玩家任意输入一个数字,计算器回答大于该数或者小于该数,直至猜中。(显示玩家猜的次数)
- 定义一个结构体变量(包含年月日),计算该日在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数
- 练习2-1 编写一个程序以确定分别由signed及unsigend限定的char short int 与long类型变量的取值范围