web蓝桥杯真题--6、随机数生成器

背景介绍

实际工作中随机数的使用特别多,比如随机抽奖、随机翻牌。通过随机数还能实现很多有趣的效果,比如随机改变元素的位置或颜色。

本题需要在已提供的基础项目中使用 JS 知识封装一个函数,该函数可以根据需要,生成指定范围和个数的不重复的随机数数组

步骤准备

在开始答题前,你需要在线上环境终端中键入以下命令,下载并解压所提供的文件。

wget https://labfile.oss.aliyuncs.com/courses/7835/exam12-imi.zip && unzip exam12-imi.zip && rm exam12-imi.zip

下载完成之后的目录结构如下:

├── index.html # 页面布局
└── js
    ├── index.js # 页面功能实现的逻辑代码

源码下载后,选中 index.html 右键启动 Web Server 服务(Open with Live Server),让项目运行起来。

接着,打开环境右侧的【Web 服务】,就可以在浏览器中看到如下效果:

图片描述

当前并未生成并显示指定条件的随机数。

考试要求

请在 index.js 文件中补全函数 getRandomNum 中的代码,最终将根据指定条件生成的随机数显示在页面中。

具体需求如下:

  1. 封装函数 getRandomNum(min,max,countNum)
  2. 生成 min ~ max 范围的 countNum 个不重复的随机数,最终这些随机数以一个数组的形式返回。

最终实现效果如下:

图片描述

要求规定

  • 请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径等。
  • 满足题目需求后,保持 Web 服务处于可以正常访问状态,点击「提交检测」系统会自动判分。

实现思路

首先要确定题目的需求,实现一定范围内的随机数,并且不重复

首先获得使用for循环,获得随机数

        min = Math.ceil(min);

        max = Math.floor(max)

        let num = Math.floor(Math.random() * (max - min + 1))  + min;

然后判断已经有的这个数组里面有没有重复

如果这个arr数组里面没有这个num,则push进去

        if(arr.indexOf(num) === -1){

            arr.push(num);

        }

总体实现代码

/**
 * 封装函数,函数名 getRandomNum(min,max,countNum)
 * 生成 min~max 范围的 countNum 个不重复的随机数,存入数组并返回
 */
//生成指定数目和范围的随机数
const getRandomNum = function(min,max,countNum){
    var arr = [];
    for(let i = 0; i < countNum ; i++ ){
        min = Math.ceil(min);
        max = Math.floor(max)
        let num = Math.floor(Math.random() * (max - min + 1))  + min;
        if(arr.indexOf(num) === -1){
            arr.push(num);
        }
    }
    // 在此处补全代码
    return arr;
}
module.exports = getRandomNum; //请勿删除

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值