2012-05-11 19 views
2

前のVARを繰り返すことなく、私は、彼らがすべてのループスルーされるまで、それは前の選択を繰り返さないようにする方法についての不明な点だが、それは、作品次のコードjQueryのランダム数学

var link = []; 
link[0] = "css/pink/pink.css"; 
link[1] = "css/blue/blue.css"; 
link[3] = ""; 
function changeStyle() { 
var ran = Math.floor(Math.random() * link.length); 
    var style = link[ran]; 
    jQuery('link[id=style-switch]').attr({href : style}); 
} 

を持っています。何か案は?

+0

ランダムにしようとするのではなく、1回だけループします。 –

+1

'Math.random()'はjavascriptであり、jQueryではありません。 – jrummell

答えて

2

配列のシャッフル(基本的には配列要素のランダムな順列)を使うことができます。これは、シャッフルされた別の配列とインデックスを保持する必要があります。 Fisher-Yates shuffle in Javascriptの例は次のとおりです。

+0

愛イイイーイ、これは複雑なタッドです、あなたは言う?すべてのOPは、以前に選択されたランダムな値にハングアップし、彼がちょうど選択したランダムな値がその配列にないことを確認します。 –

+0

本当にそうではありません、あなたはどうしてそう思いますか? – BrokenGlass

+0

長い単語が多すぎます。しかし、実際にはこれは簡単な問題です。シャッフルされた配列とそのインデックスを必要としない場合は、必要なものが他の配列である場合は特にそうではありませんので、特に問題はありません。 –

関連する問題