javaScript | javaScript内置对象 Math的应用 如何实现随机打印数组元素

关于内置对象math的属性和方法有很多,具体可以参考文档:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/floor


这里简单介绍几个:

javascript 复制代码
        // Math.floor()函数,向下取整的作用
        // 例如:
        console.log(Math.floor(2.99)) //控制台打印:2
        console.log(Math.floor(2.01)) // 控制台打印:2

        // Math.ceil()函数,向上取整的作用
        // 例如:
        console.log(Math.ceil(2.99)) // 控制台打印:3
        console.log(Math.ceil(2.01)) // 控制台打印:3

        // Math.round()函数返回一个四舍五入最接近的数字
        // 例如:
        console.log(Math.round(2.51)) // 控制台打印:3
        // 2.51 距离3 只差0.49 < 0.51
        console.log(Math.round(2.49)) // 控制台打印:2
        // 2.49 距离3 差0.51 距离2仅差0.49 所以取2
javascript 复制代码
        // Math.random()函数返回一个0-1之间
        // 并且包括0不包括1的随即小数[0,1) 永远不会取到1

        // 1.那么如何生成0-10的随机数呢?
        Math.floor(Math.random() * (10 + 1))
        // 这里乘11 保证了能够取到10 进而floor向下取整 确保最大只能取到10

        // 2.如何生成5-10的随机数呢?
        Math.floor(Math.random() * 6 + 5)
        // 这里Math.random()*6 所代表的取值范围为:[0,6) 
        // 加上5 的取值范围为:[5,11) floor向下取整,确保最大只能取到10

        // 总结
        // 3.如何生成N-M之间的随机数
        Math.floor(Math.random() * (M - N + N))

有了这几个函数的基础,我们思考一下,如何实现,随机打印数组中的元素呢?

相信你心中已经有答案了,没错就y

javascript 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Math</title>
</head>

<body>
    <script>

        // 4.结合数组 实现随机抽取
        let arr = ['zero', 'one', 'two', 'three']
        let random = Math.floor(Math.random() * arr.length)
        // 因为数组下标本就是从0开始   这里数组长度为:4
        // random() 取值为[0,4) 包含3 不包含4
        console.log(random) // 打印一个[0,4) 的随机数
        console.log(arr[random]) // 随机打印数组元素


    </script>

</body>

</html>

应用示例:实现随机点名操作

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>随机点名</title>
</head>
<body>
    <script>
        let names = ['张三','李四','王五','马六','赵七','大聪明']
        let random = Math.floor(Math.random()*names.length)
        document.write(random)// 打印一个个随机数作为数组的索引号
        document.write(names[random]) // 打印这个随机数对应的数组元素
    </script>
    
</body>
</html>
相关推荐
不想秃头的程序员7 小时前
Vue3 封装 Axios 实战:从基础到生产级,新手也能秒上手
前端·javascript·面试
難釋懷7 小时前
Lua脚本解决多条命令原子性问题
开发语言·lua
CoderCodingNo7 小时前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
独好紫罗兰7 小时前
对python的再认识-基于数据结构进行-a005-元组-CRUD
开发语言·数据结构·python
奔跑的web.7 小时前
UniApp 路由导航守
前端·javascript·uni-app
chilavert3188 小时前
技术演进中的开发沉思-356:重排序(中)
java·开发语言
竟未曾年少轻狂8 小时前
Vue3 生命周期钩子
前端·javascript·vue.js·前端框架·生命周期
devmoon8 小时前
为 Pallet 搭建最小化 Mock Runtime 并编写单元测试环境
开发语言·单元测试·区块链·智能合约·polkadot
不一样的少年_8 小时前
Chrome 插件实战:如何实现“杀不死”的可靠数据上报?
前端·javascript·监控
Coder_Boy_8 小时前
Java开发者破局指南:跳出内卷,借AI赋能,搭建系统化知识体系
java·开发语言·人工智能·spring boot·后端·spring