random()的使用技巧

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)    // 可能是数组中包含得任何一个字符串

 

你可能感兴趣的:(javascript)