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

如何使用JavaScript从数组中选择随机值?,javascript,Javascript,可能重复: 我有一个带有以下行的外部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 我如何让它工

可能重复:

我有一个带有以下行的外部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
我如何让它工作


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开始)

执行以下操作:

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];
};

创建站点数组,然后从数组中选择一个元素。您可以通过使用选择一个随机数来完成此操作,该随机数将给出大于或等于0且小于1的结果。乘以数组的长度,然后取(也就是说,只取整数部分,去掉任何小数点),这样就可以得到一个比数组长度小0到1的数字(这将是数组的有效索引)。使用该结果从数组中选择一个元素。

在标题中选择正确的语言将是一个开始:您的文章标题应为“Javascript”。。。。不应该吗?可以使用:var random=array(..)初始化数组;然后用“Math.random()”作为索引,因为你要乘以10,然后测试它是否大于长度,你为列表中的最后一个站点引入了一个偏差:它将被更频繁地拾取(在你的示例中,几乎有50%的时间)。而是与数组的长度相乘。嗨,我在回答这个问题后马上想到了这个问题。你完全正确。有一个bug--需要在
收藏夹.length
数学.round(7.919417901018048);//8和
数学楼层(7.919417901018048);//7
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;