首页 » JavaScript » random

random

Math.random()方法返回介于0和1之间一个随机数,不包括0和1。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。套用下面的公式,就可以利用Math.random()从某个整数范围内随机选择一个值:

值 = Math.floor(Math.random() * 10 +1 );

总共有10个可能的值(1到10),而第一个可能的值是1。而如果想要选择一个介于2到10之间的值,就应该将上面的代码改成这样:

var num = Maht.floor(Math.random() * 9 +2);

从2到10要数9个数,因此可能值的总数就是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)的一个数值

函数selectFrom()接受两个参数:应该返回的最小值和最大值。而用最大值减最小值再加1得到了可能值的总数,然后它又把这些数值套用到了前面的公式中。这样,通过调用selectFrom(2,10)就可以得到一个介于2和10之间(包括2和10)的数值了。利用这个函数,可以方便地从数组中随机取出一项,例如:

var colors = ["red", "green", "blue", "yellow", "black", "purple", "brown"];
var color = colors[selectFrom(0, colors.length - 1)];
alert(color); //可能是数组中包含的任何一个字符串

在这个例子中,传递给selectFrom()第二个参数是数组的长度减1,也就是数组中最后一项的位置。

此文章发表在 JavaScript 标签为 . 将固定链接加入收藏.