Math.random() 方法返回大于等于0小于1的一个随机数。
套用下面的公式,就可以利用 Math.random() 从某个整数范围内随机选择一个值。
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
公式中使用 Math.floor() 方法,是因为 Math.random() 总返回一个小数值。而利用这个小数值乘以一个整数,然后再加上一个整数,最终结果仍然是一个小输。例如:
- 随机选择 1 ~ 10 之间数值:
var num = Math.floor(Math.random() * 10 + 1)
- 随机选择 2 ~ 10 之间数值(从2数到10要9个数,因此可能值总和是9,而第一个可能就是2):
var num = Math.floor(Math.random() * 9 + 2)
多数情况下,其实都可以通过一个函数来计算可能值的总数和第一个可能的值:
function selectFrom(lowerValue, upperValue) {
var choices = upperValue - lowerValue + 1
return Math.floor(Math.random() * choices + lowerValue)
}
var num = selectFrom(2, 10)
alert(num) // 介于2和10之间(包括2和10)的一个值
利用这个函数还可以从数组中随机取出一项,例如:
var colors = ['red', 'green', 'blue', 'yellow', 'black', 'brown']
var color = colors[slectFrom(0, colors.length - 1)]
alert(color) // 可能是数组中包含得任何一个字符串