日前有个需求,获取指定区间内N个不重复随机数,于是自己写了一个函数来实现,现在分享出来,有需要的尽管拿去。
基于微信小程序开发,我将函数放在了util.js里,方便全局调用。
util.js代码如下
//获取指定区间内任意个不重复随机数
const getRandomNums = (min,max,len) =>{
let arr = []
for(let i = 0 ; i < len ; i++){
let has = false //标记是否有重复
let num = Math.ceil(Math.random()*(max-min+1) + (min-1))
if(arr.length == 0){
arr.push(num)
}
else{
//比较是否有重复
for(let j = 0 ; j < arr.length;){
let jtem = arr[j]
if (jtem == num) {
num = Math.ceil(Math.random()*(max-min+1) + (min-1))
j = 0, has = true
}else{
has = false, j++
}
}
//循环比较结束,如果整个arr没有重复,就追加
if(has == false){
arr.push(num)
}
}
}
return arr
}
module.exports = {
//对外暴露的函数名
getRandomNums : getRandomNums
}```