JavaScript中的random小案例

前言

        Math对象是JavaScript的内置对象,而random是Math对象属性

   Math.random()函数返回一个浮点数,伪随机数在范围从0 到小于1,也就是说,从 0(包括 0)往上,但是不包括 1(排除 1),然后你可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。


一、每次打印都输出一个随机数

// 求随机数 
console.log(Math.random());//0-1之间小数
var arr = ['上官婉儿','萌芽','甄姬','虞姬','典韦'];
function Random(arr){
  var index = parseInt(Math.random() * arr.length);
  console.log(arr[index])
}
Random(arr);

代码运行结果如下:


二、生成随机圆

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>
<script>

  for (var i = 0; i < 100; i++) {
    //创建元素
    var div = document.createElement("div")
    div.classList.add("div")

    //
    var widts = Math.random() * 50 + 30
    var tops = Math.random() * (innerHeight - widts)
    var lefts = Math.random() * (innerWidth - widts)
    console.log(tops);
    console.log(lefts);
    div.style.width = widts + "px"
    div.style.height = widts + "px"
    div.style.left = lefts + "px"
    div.style.top = tops + "px"
    //0-255
    function cl() {
      return col1 = Math.floor(Math.random() * 256)
    }
    var r = cl()
    var g = cl()
    var b = cl()
    div.style.backgroundColor = `rgb(${r},${g},${b})`

    document.body.append(div)
  }

</script>
<style>
  div {
    position: fixed;
    border-radius: 50%;
  }
</style>

代码运行结果如下:


三、随机点名案例(由案例一延伸) 

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>随机点名</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
 
        h2 {
            text-align: center;
        }
 
        .box {
            margin: 100px auto;
            padding: 50px;
            width: 600px;
            background-color: rgb(156, 3, 3);
            background-image: url(./festival.jpg);
            background-position: center;
            background-size: cover;
            border: 5px solid gold;
            border-radius: 5px;
        }
 
        .content {
            display: flex;
            margin: 50px auto;
            width: 600px;
            font-size: 25px;
            text-align: center;
            line-height: 40px;
            color: goldenrod;
        }
        .content span {
            padding: 10px 0;
        }
        .qs {
            padding: 10px;
            width: 450px;
            height: 40px;
            background-color: #000;
            color: gold;
        }
        .btns {
            text-align: center;
        }
 
        .btns button {
            width: 120px;
            height: 35px;
            margin: 0 50px;
        }
    </style>
</head>
 
<body>
    <div class="box">
        <h2>随机点名</h2>
        <div class="content">
            <span>名字是:</span>
            <div class="qs">幸运嘉宾</div>
        </div>
        <div class="btns">
            <button class="start">开始</button>
            <button class="end">结束</button>
        </div>
    </div>
    <script>
        // 数据数组
        const arr = ['马超', '黄忠', '赵云', '关羽', '张飞','曹操','孙权']
        // 业务1. 开始按钮模块
        // 定时器全局变量
        let timeId = 0
        // 随机号全局变量
        let random = 0
        // 1.1 获取姓名区域对象
        const uname = document.querySelector('.qs')
        // 1.2 获取开始按钮对象
        const start_btn = document.querySelector('.btns .start')
        // 1.3 添加点击事件
        start_btn.addEventListener('click', function () {
            // 开启定时器
            timeId = setInterval(function () {
                // 随机数
                random = Math.floor(Math.random() * arr.length)
                // console.log(arr[random]);
                uname.innerHTML = arr[random]
            }, 50)
            // 点击开始按钮,禁用开始按钮
            start_btn.disabled = true
            // 如果数组里面只有一个值、不需要抽取,直接禁用开始、结束按钮
            if (arr.length === 1) {
                // start_btn.disabled = true
                // end_btn.disabled = true
                start_btn.disabled = end_btn.disabled = true
            }
        })
        // 业务2. 结束按钮模块
        // 2.1 获取结束按钮对象
        const end_btn = document.querySelector('.btns .end')
        // 2.2 添加点击事件
        end_btn.addEventListener('click', function () {
            // 点击结束按钮,启用开始按钮
            start_btn.disabled = false
            // 关闭定时器
            clearInterval(timeId)
            console.log(arr[random]);
            // 结束,删除抽到的对应数组元素
            arr.splice(random, 1)
            console.log(arr);
        })
    </script>
</body>
 
</html>

代码运行结果如下:

开始界面:

 结束界面:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/173427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用逻辑过期解决缓存击穿问题

需求&#xff1a;修改根据id查询商铺的业务&#xff0c;基于逻辑过期方式来解决缓存击穿问题 思路分析&#xff1a;当用户开始查询redis时&#xff0c;判断是否命中&#xff0c;如果没有命中则直接返回空数据&#xff0c;不查询数据库&#xff0c;而一旦命中后&#xff0c;将v…

OpenGL_Learn14(光照贴图)

1. 漫反射贴图 在光照场景中&#xff0c;它通常叫做一个漫反射贴图(Diffuse Map)&#xff08;3D艺术家通常都这么叫它&#xff09;&#xff0c;它是一个表现了物体所有的漫反射颜色的纹理图像。 我们会将纹理储存为Material结构体中的一个sampler2D 。我们将之前定义的vec3漫反…

算法学习 day27

第二十七天 美化数组的最少删除数 2216. 美化数组的最少删除数 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int minDeletion(vector<int>& nums) {int len nums.size();if(len 0) return 0;int res 0,cur 0;for(int i 1;i < len;i)…

OpenCV入门9——目标识别(车辆统计)

文章目录 图像轮廓查找轮廓绘制轮廓轮廓的面积与周长多边形逼近与凸包外接矩形项目总览【车辆统计】视频加载【车辆统计】去背景【车辆统计】形态学处理【车辆统计】逻辑处理【车辆统计】显示信息【车辆统计】 图像轮廓 查找轮廓 # -*- coding: utf-8 -*- import cv2 import n…

Vue框架学习笔记——v-bind数据单向绑定和v-model数据双向绑定

文章目录 v-bind&#xff0c;数据单向绑定简写形态&#xff08;省略v-bind&#xff0c;只留冒号&#xff09;示例一&#xff08;将输入框数据改为&#xff1a;哈哈哈哈哈&#xff09;&#xff1a;实例二&#xff08;将Vue实例中的name改为字符串&#xff1a;"单向绑定&quo…

Redis 5 种基本数据类型详解

Redis 共有 5 种基本数据类型&#xff1a;String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Set&#xff08;集合&#xff09;、Hash&#xff08;散列&#xff09;、Zset&#xff08;有序集合&#xff09;。 这 5 种数据类型是直接提供给用户使用的&…

1、基础入门——操作系统文件下载反弹SHELL防火墙绕过

名词解释 POC&#xff1a;验证漏洞存在的代码&#xff1b; EXP&#xff1a;利用漏洞的代码&#xff1b; payload&#xff1a;漏洞利用载荷&#xff0c; shellcode&#xff1a;漏洞代码&#xff0c; webshell&#xff1a;特指网站后门&#xff1b; 木马&#xff1a;强调控制…

多目标应用:基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化调度(MATLAB代码)

一、微网系统运行优化模型 微电网优化模型介绍&#xff1a; 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、基于非支配排序的鲸鱼优化算法NSWOA 基于非支配排序的鲸鱼优化算法NSWOA简介&#xff1a; 三、基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化…

年薪30w项目经理都在用的6个项目管理软件

大家好&#xff0c;我是老原。又到了每月一次的好用工具推荐&#xff0c;不少粉丝都在搓手等待了。 要知道&#xff0c;实时掌握项目进度、把关项目质量、应对项目风险、协调资源…如果能好用的工具高效提升你的工作效率&#xff0c;对于领导来说&#xff0c;绝对是加分项。 …

【Linux】文件操作

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;文件是什么&#xff1f;&am…

可用于短期风速预测及光伏预测的LSTM/ELM预测程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 程序内容&#xff1a; 该程序是预测类的基础性代码&#xff0c;程序对河北某地区的气象数据进行详细统计&#xff0c;程序最终得到pm2.5的预测结果&#xff0c;通过更改数据很容易得到风速预测结果。程序主要…

金融企业为啥不选择云服务器还是考虑服务器托管

尽管云主机在近年来的发展中取得了巨大的成功&#xff0c;但在金融行业中&#xff0c;一些客户仍然倾向于将服务器托管到数据中心&#xff0c;而不是使用云主机。以下是一些金融客户选择将服务器托管到数据中心的原因&#xff1a; 数据安全性&#xff1a;金融行业对数据的安全性…

Unity团结引擎使用总结

团结引擎创世版以 Unity 2022 LTS 为研发基础&#xff0c;与 Unity 2022 LTS 兼容、UI 也基本保持一致&#xff0c;使 Unity 开发者可以无缝转换到团结引擎。融入了团结引擎独有功能和优化&#xff0c;未来会加入更多为中国开发者量身定制的功能和优化。 目前正在内测&#xf…

flutter vscode gradle 配置

我这边主要改了如图两个文件&#xff0c;然后把Gradle的问题解决了 参考文章&#xff1a; flutter运行Runt imeException: Timeout of 120000问题-CSDN博客 flutter配置gradle&#xff08;个人笔记&#xff0c;非教程&#xff09;_flutter gradle_追寻着星星的方向的博客-CSD…

【secureCRT连接Virtual Box里安装的Utuntu】

先说一下为什么要写这篇文章及一些背景问题介绍&#xff0c;楼主第一次使用secureCRT及securtFX这两个软件&#xff0c;在windows系统下访问虚拟机里面的ubuntu系统。看了网上的不少帖子&#xff0c;没有让我清晰明白地知道怎么使用secureCRT。连接不通&#xff0c;不知道是虚拟…

PyTorch中并行训练的几种方式

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

时间序列预测(9) — Informer源码详解与运行

目录 1 源码解析 1.1 文件结构 1.2 mian_informer.py文件 1.3 模型训练 1.4 模型测试 1.5 模型预测 2 Informer模型 2.1 process_one_batch 2.2 Informer函数 2.3 DataEmbedding函数 2.4 ProbAttention稀疏注意力机制 2.5 Encoder编码器函数 2.6 Decoder解码器函数…

【Linux系统化学习】进程优先级 | 进程饥饿 | 进程切换

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 目录 进程优先级 什么是优先级&#xff1f; 为什么会有优先级&#xff1f; 如何做到的&#xff1f; 优先级的动态调整 查看进程优先级的命令 PRI 和 NI PRI VS NI 修改进程优先级 …

基于Python+TensorFlow+Django的交通标志识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 随着交通网络的不断扩展和智能交通系统的发展&#xff0c;交通标志的自动识别变得愈发重要。本项目旨在利用Python编…

8Base集团通过SmokeLoader部署新的Phobos勒索软件变种

最近&#xff0c;8Base集团的威胁行为者通过Phobos勒索软件的变种展开了一系列金融动机的攻击。这一发现来自于思科Talos的研究结果&#xff0c;他们记录了网络犯罪分子活动的增加。 安全研究员Guilherme Venere在周五发表的详尽的两部分分析中表示&#xff1a;“该组织的大多…