当前位置: 首页 > article >正文

js实现生成随机数值的数组

生成随机数值的数组

  • 方法一:使用while循环和Set
// min 开始数值, max 结束数值, count 数组内填充几个数值
function generateUniqueRandomNumbers(min, max, count) {  
    let result = new Set();  
    while (result.size < count) {  
        let num = Math.floor(Math.random() * (max - min + 1)) + min;  
        result.add(num);  
    }  
    return Array.from(result);  
}  
// 使用方式 输出结果为 1-9之间的三个随机数
let uniqueRandomNumbers = generateUniqueRandomNumbers(1, 9, 3);  
  • 方法二:先生成数组再排序去重
// 数组去重操作
function shuffleArray(array) {  
    for (let i = array.length - 1; i > 0; i--) {  
        const j = Math.floor(Math.random() * (i + 1));  
        [array[i], array[j]] = [array[j], array[i]];  
    }  
    return array;  
}  
// 生成随机数值
function generateUniqueRandomNumbersV2(min, max, count) {  
    let numbers = [];  
    for (let i = min; i <= max; i++) {  
        numbers.push(i);  
    }  
    numbers = shuffleArray(numbers);  
    return numbers.slice(0, count);  
}  
  
let uniqueRandomNumbersV2 = generateUniqueRandomNumbersV2(1, 9, 3); 

要生成的随机数的范围远大于你需要的数量时 推荐 使用 方法一
范围不是特别大且需要确保随机性时推荐使用 方法二
当你需要的随机数与范围大小相近时,方法1的性能可能会下降,因为它可能需要多次尝试才能填充Set。


http://www.kler.cn/a/300943.html

相关文章:

  • 如何使用策略模式并让spring管理
  • (三)html2canvas将HTML 转为图片并实现下载
  • Facebook 隐私风波:互联网时代数据安全警钟
  • 爬虫请求失败时如何处理?
  • 【汇编】x86汇编编程寄存器资源心中有数
  • 【C语言】字符串函数详解
  • ChatGPT+Simple Mind Map生成思维导图:快速提升学习效率
  • Linux命令的补全和自动完成完全开启
  • 详细分析Mysql配置文件路径的查找(多种方法)
  • 用可道云teamOS的私密保险箱,构建职场人的安全小天地
  • 【容器安全系列Ⅵ】- Linux seccomp隔离
  • Java中的内存模型与并发编程优化
  • 核心系统用PG了,抠脑壳的权限,搞晕了!
  • 【软件合集】电脑桌面整理工具、DLL修复工具、文件加密等11款电脑必备软件,高效办公!
  • 多线程篇五——wait和notify
  • 现货黄金避险属性是怎么来的?
  • 敏捷开发方法例题
  • 从用户反馈看相亲交友平台的设计缺陷及改进方向
  • 电脑开机速度慢怎么解决?
  • 【智能终端】HBuilder X 与微信开发者工具集成与调试实战
  • Windows系统下安装Redis
  • EasyExcel相关整理
  • 【C++登堂入室】类和对象(中)——类的6个默认成员函数
  • 外包干了三年,快要废了。。。
  • Vulnhub-RickdiculouslyEasy靶场(9个flag)
  • Go语言中的RPC协议原理解析