// 生成一个区间范围内数值
function getRandom(start,end){
if( typeof start === "number" && typeof end === "number"){
return Math.ceil(Math.random()*(end-start)) + start
}else{
throw new Error("arguments must be a number")
}
}
// 生成符合数量和区间范围的数组
function pick(num,start,end){
if(typeof num === "number"){
var result = []
var arr = []
var distance = end - start // 区间值之间的差额数量
!function innerPick(){
for(var i=0; i<num; i++){
arr.push(getRandom(start,end)) // 执行生成区间值函数操作并添加给数组
}
result = arr.filter(function(ele,index,self){
return self.indexOf(ele) == index // 去除重复的数组 导致数组数量可能会减少
})
if(result.length < distance){
innerPick() // 判断是否被去重操作 减少了数组数量为true就在递归一次 数组数量可能会超出规定
}else{
result.length = distance // 如果递归后数组数量超出 则裁剪到靠后的多余数组并返回新数组
return result
}
}()
return result // 返回新数组
}
else{
throw new Error("arguments must be a number")
}
}
var a = pick(10,10,20)
console.log(a)
javascript函数输出任意个数的范围数组
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...