指定范围取n个不同的数

 public static getNUniqueNumbers(min, max, n) {
    if (min > max) {
      [min, max] = [max, min];
    }
    let range = max - min;
    if (range <= n) {
      return GameTool.getOrderArrByLen(range).map(item => { item + min })
    }
    let _arr = []
    for (let i = 0; i < n; i++) {
      let random = Math.floor(Math.random() * (range + 1))
      if (_arr.indexOf(random + min) === -1) {
        _arr.push(random + min)
      } else {
        let flag = true
        while (flag) {
          random++
          if (random >= range) {
            random = 0
          }
          if (_arr.indexOf(random + min) === -1) {
            flag = false
            _arr.push(random + min)
          }
        }
      }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容