获取指定区间内n个不重复随机数

日前有个需求,获取指定区间内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 
}```


猜你喜欢

转载自blog.csdn.net/laya1211/article/details/129055307