JavaScript - 从目录中选择一个随机页面

时间:2012-08-24 13:25:08

标签: javascript html random html-helper

我正在开发一个网页,但我需要一个JS脚本,从目录中选择一个随机页面。目前我有这个脚本;

    <!-- Hide this script from old browsers --

var links = new Array(10) 
links[0] = "anal.html" 
links[1] = "brr-fail.htm" 
links[2] = "anal.html" 
links[3] = "brr-fail.htm" 
links[4] = "anal.html" 
links[5] = "brr-fail.htm" 
links[6] = "anal.html" 
links[7] = "brr-fail.htm" 
links[8] = "anal.html" 
links[9] = "brr-fail.htm" 
links[10] = "anal.html" 
function go() { 
var a = 1+Math.round(Math.random()*10) 
var i = a 
location = links[i] 
} 
// -- End Hiding Here -->

</script>

(别担心,这不是同性恋色情 - 模因)

正如您所看到的,它有点复杂,有时会出现“未定义”的页面错误。有没有办法让它从整个目录中选择一个随机页面?说一些像;

www.urlhere.co.uk/memes/random /

谢谢你们

4 个答案:

答案 0 :(得分:2)

您已退出索引,您应该这样做:

var a = Math.round(Math.random()*10);

因为链接数组的第0个元素因1 +随机而无法触发..

编辑:

var a = Math.floor(Math.random() * 11);

答案 1 :(得分:1)

数学随机生成01之间的值,如果乘以10,则会得到0.09.9的数字,如果你绕过它,那么你从010获取号码。所以你不需要为它添加1,因为undefined,在某些情况下会导致11,因为你没有。只需使用:

var a = Math.round(Math.random()*10); // {0-10}

编辑:更正了错误的第一个答案

注意:实际上不会产生随机数的标准分布,因为只有当Math.random()为0.0 - 0.049 ...(0)和0.95时才会产生0和10 - 0.99 ...(10)你甚至可以胜任:

var a = Math.floor(Math.random()*11); // {0-10}

这样整个小数范围(x.0-x.9)就会下降。

答案 2 :(得分:1)

你在行尾和

上缺少;分隔符
function randInt(max, min) {
    return (min || 0) + Math.floor(Math.random()*(max+1));
}

答案 3 :(得分:1)

var links = new Array(10) 
links[0] = "anal.html" ;
links[1] = "brr-fail.htm" ;
links[2] = "anal.html" ;
links[3] = "brr-fail.htm" ;
links[4] = "anal.html" ;
links[5] = "brr-fail.htm" ;
links[6] = "anal.html" ;
links[7] = "brr-fail.htm" ;
links[8] = "anal.html" ;
links[9] = "brr-fail.htm" ;
links[10] = "anal.html" ;
function go() { 
var a= Math.floor(Math.random() * links.length);
var i = a;
location = links[i] ;
}