Math.floor()为向下取整 Math.random() 一个浮点型伪随机数字,在0(包括0)和1(不包括)之间。
得到一个两数之间的随机数
这个值不小于 min(有可能等于),并且小于(不等于)max
Math.random() * (max - min) + min;
得到一个两数之间的随机整数
这个值不小于 min (如果 min 不是整数,则不小于 min 的向上取整数),且小于(不等于)max。
Math.floor(Math.random() * (max - min)) + min;
得到一个两数之间的随机整数,包括两个数在内
Math.floor(Math.random() * (max - min + 1)) + min;
取0~30内的数字
Math.floor(Math.random()*30)
取数组中的 每个值 随机
let arr=[9,12,33,24,65,7]
arr[Math.floor(Math.random()*arr.length)]
随机出题 取题目中的一个 不重复题目
拿上面的案例会出现出现重复的所有我们要改变一下
let arr=[9,12,33,24,65,7]
arr.splice(Math.floor(Math.random()*arr.length),1)[0]
let newArr=[]
for(let i=0; i<3; i++){
newArr.push(arr.splice(Math.floor(Math.random()*arr.length),1)[0])
}
概率 随机取值
比如有一组数 arr=[1,2,3,4] 随机取值 要4出现的概率是80%
let arr=[1,2,3,4]
let probability=0.8
let newArr=[]
for(let i=0; i<probability/(1-probability)*arr.length; i++){
newArr.push(4)
}
arr.splice(arr.indexOf(4),1,...newArr)
arr.splice(Math.floor(Math.random()*arr.length),1)[0]
// 新的数组 arr
|