如何使用JavaScript从数组中选择随机值?

时间:2011-04-18 20:55:09

标签: javascript

  

可能重复:
  JavaScript: Getting random value from an array

我有一个带有以下行的外部js:

var postmessage = "hi my favorite site is http://google.com";

但有没有办法从数组中随机选择一个网站,就像这样

var postmessage = "hi my favorite site is +'random'";

random= http://google.com, http://yahoo.com, http://msn.com, http://apple.com

我如何让它发挥作用?

3 个答案:

答案 0 :(得分:23)

var favorites = ["http://google.com", "http://yahoo.com", "http://msn.com", "http://apple.com"];
var favorite = favorites[Math.floor(Math.random() * favorites.length)];
var postmessage = "hi my favorite site is " + favorite;

创建一个网站数组,然后从数组中选择一个元素。您可以通过使用Math.random()选择一个随机数来实现此目的,它会给出大于或等于0且小于1的结果。乘以数组的长度,然后取floor(即,只取整数部分,删除任何小数点),这样你将得到一个比数组长度小0到1的数字(这将是你的数组的有效索引)。使用该结果从数组中选择一个元素。

答案 1 :(得分:3)


var sites = new Array('http://www.google.com', "http://www.stackoverflow.com")

var postmessage = "hi my favorite site is" + sites[Math.round(Math.random()*(sites.length-1))];


首先将所有网站都放在一个数组中。然后从数组长度中获取一个随机数(-1是因为数组为零索引,返回的长度从1开始)

答案 2 :(得分:1)

做这样的事情:

function getRandomSite(){
   var sites = ["google.com","bing.com","xyz.com","abc.com","example.com"];
    var i = parseInt(Math.random()*(sites.length-1));
    return sites[i];
};