内置对象-生成任意范围随机数
Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1)
-
如何生成0-10的随机数呢?
Math.floor(Math.random() * (10 + 1)) 放大11倍再向下取整
-
如何生成5-10的随机数?
Math.floor(Math.random() * (5 + 1)) + 5
-
如何生成N-M之间的随机数?
Math.floor(Math.random() * (M - N + 1)) + N
function getRandom(N, M) { return Math.floor(Math.random() * (M - N + 1)) + N } console.log(getRandom(4,8))
案例1 随机点名案例
需求:请把 [‘赵云’, ‘黄忠’, ‘关羽’, ‘张飞’, ‘马超’, ‘刘备’, ‘曹操’] 随机显示一个名字到页面中
分析:
①:利用随机函数随机生成一个数字作为索引号
②: 数组[随机数] 生成到页面中
let names = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操'] let random = Math.floor(Math.random()*7) console.log(names[random])
案例2 随机点名案例改进
需求:请把 [‘赵云’, ‘黄忠’, ‘关羽’, ‘张飞’, ‘马超’, ‘刘备’, ‘曹操’] 随机显示一个名字到页面中,但是不允许重复显示
let arr = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操'] // 1. 得到一个随机数, 作为数组的索引号, 这个随机数 0~6 let random = Math.floor(Math.random() * arr.length) // 2. 页面输出数组里面的元素 document.write(arr[random]) // 3. splice(起始位置(下标), 删除几个元素) arr.splice(random, 1) console.log(arr)
案例3 猜数字游戏
需求:程序随机生成 1~10 之间的一个数字,用户输入一个数字
①:如果大于该数字,就提示,数字猜大了,继续猜
②:如果小于该数字,就提示,数字猜小了,继续猜
③:如果猜对了,就提示猜对了,程序结束
// 1. 随机生成一个数字 1~10 // 取到 N ~ M 的随机整数 function getRandom(N, M) { return Math.floor(Math.random() * (M - N + 1)) + N } let random = getRandom(1, 10) console.log(random) // 需要不断的循环 while (true) { // 2. 用户输入一个值 let num = +prompt('请输入你猜的数字:') // 3. 判断输出 if (num > random) { alert('您猜大了') } else if (num < random) { alert('您猜小了') } else { alert('猜对啦,真厉害') break // 退出循环 } }
案例4 生成随机颜色(没做出来)
需求:该函数接收一个布尔类型参数,表示颜色的格式是十六进制还是rgb格式。
①:如果参数传递的是true或者无参数,则输出 一个随机十六进制的颜色
②:如果参数传递的是false,则输出 一个随机rgb的颜色
③:格式:
function getRandomColor(flag){ } console.log(getRandomColor(true)) //#ffffff console.log(getRandomColor(false)) //rgb(255,255,255)
分析:
提示: 16进制颜色格式为: ‘#ffffff’ 其中f可以是任意 0-f之间的字符,需要用到数组, let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
提示: rgb颜色格式为: ‘rgb(255,255,255) ’ 其中255可以是任意0-255之间的数字
案例5 综合渲染案例(没看)
精品推荐
查看全部
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章