1

Web ページを開発していますが、ディレクトリからランダムにページを選択する 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

4 に答える 4

2

インデックスが不足しています。次のことを行う必要があります。

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

リンク配列の 0 番目の要素は 1+random のためにトリガーされないため..

編集:

var a = Math.floor(Math.random() * 11);
于 2012-08-24T13:28:54.547 に答える
1

Math random は から の間の値を生成します0。101を掛けると から までの数値が得られ、それを四捨五入すると から から0.0まで9.9の数値が得0られ10ます。したがって、1 を追加する必要はありません。場合によっては 11 になりますが、undefined. 単純に使用します:

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

編集:間違った最初の答えを修正しました

注:Math.random() 0 と 10 は、 0.0 - 0.049... (0) および 0.95 - 0.99... (10) の場合にのみ結果が得られるため、実際には乱数の標準的な分布にはなりません。

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

このようにして、10 進数の範囲全体 (x.0-x.9) が下がりました。

于 2012-08-24T13:29:05.837 に答える
1

;行末に区切り文字がありません。

function randInt(max, min) {
    return (min || 0) + Math.floor(Math.random()*(max+1));
}
于 2012-08-24T13:29:41.937 に答える
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] ;
} 
于 2012-08-24T13:32:00.703 に答える