javascript 生成不重复的随机数

admin3个月前软件教程38

随机数在计算机编程中扮演着重要的角色,JavaScript也不例外。在一些应用场景中,我们可能希望生成一组不重复的随机数,来保证数据的唯一性或更好地模拟某些实际问题。本文将介绍一些常用的方法来实现JavaScript生成不重复的随机数。

首先,我们可以利用数组的方式来实现不重复随机数的生成。具体实现方法为:将要生成的随机数依次存入数组中,当下次生成随机数时,判断数组中是否已经存在该数,若不存在,则将该数存入数组中。下面是一段示例代码:

let nums = []; // 用于存储生成的随机数while (nums.length< 10) { // 生成10个不重复的随机数let num = Math.floor(Math.random() * 100); // 生成0-100的随机数if (nums.indexOf(num) === -1) { // 判断数组中是否已经存在该数nums.push(num); // 将该数存入数组中}}console.log(nums); // [51, 42, 98, 16, 30, 79, 5, 48, 68, 12]

上述代码中,我们使用了while循环来不断生成随机数,利用数组的indexOf方法判断该数是否已经存在于数组中,并使用push方法将该数存入数组中。最后输出生成的不重复随机数。

另外,我们还可以使用另外一种方法来生成不重复的随机数,即使用一个map对象来存储已经生成的随机数,以保证每次生成的随机数不重复。示例代码如下:

let nums = new Map(); // 用于存储生成的随机数while (nums.size< 10) { // 生成10个不重复的随机数let num = Math.floor(Math.random() * 100); // 生成0-100的随机数if (!nums.has(num)) { // 判断map对象中是否已经存在该数nums.set(num, true); // 将该数存入map对象中}}console.log(Array.from(nums.keys())); // [27, 1, 59, 0, 48, 30, 73, 37, 94, 16]

上述代码中,我们使用了Map对象来存储已经生成的随机数,其中map的key值为生成的随机数,value值可以为任意非空值。当判断map对象中不存在该数时,将该数存入Map对象中。最后通过Map对象的keys方法,将所有的key值转换为数组输出。

在实际应用中,我们可以根据需要选择使用哪种方式来生成不重复随机数。无论采用何种方式,我们都可以通过一定的代码实现来达到目的。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

保险app开发有哪些问题

保险APP开发存在的问题: 1、用户使用APP和自助投保意识不强这是保险APP开发面临的最致命的一个问题。从应用市场上保险APP的下载量就可以看出,用户对保险APP好像不是太感冒,对于主动使用保险AP...

淘帮帮是什么

淘帮帮指帮助淘宝卖家推广商品从而还能获取佣金赚钱的这么一个app,这是一种推广模式,现在很多的APP推广都用这样的模式。手机软件,主要指安装在智能手机上的软件,完善原始系统的不足与个性化。使手机完善其...

毒上下单后可以立即退款吗

毒下单后不可以马上退,下单后需要跟商户协商才能退。毒app是可以退货的,退货规则与其他电商平台规则不同,不是七天无理由退款,而是在退款的时候要支付99元技术服务费。《毒》App是由上海识装信息科技有限...

上门洗车APP哪家强

互联网的发展让如今的O2O处于一片红海,就连洗车都可以上门服务了,而这样的上门洗车APP软件开发也让车主在保养车上更省心,让洗车也不用再烦恼,那么上门洗车APP都有哪些呢?上门洗车APP哪家强?小编给...

高德地图怎么导航

大家好,我是80知识网,上述问题将由我为大家进行解答。现在城市越来越大,很多路都在不断的修缮,这也导致了不认识路的情况时有发生,这时候就需要借助地图软件来帮助自己找到对的路。以高德地图为例,使用的具体...

快手私信有个绿点什么意思

快手私信有个绿点的意思是对方在私聊窗口中,正在和用户聊天中,该APP可以用照片和短视频记录生活的点滴,也可以通过直播与粉丝实时互动。快手是由快手科技开发的一款短视频应用APP,于2013年正式上线。快...