- ベストアンサー
バナーのランダム表示(複数、重複不可、個数限定)
同じような質問はありますが、少し発展系なので質問させてください。 また、他で検索してみたのですが、同じようなものがなかったので。 10個(増殖可能)のバナー(リンク付き画像)をランダムに5個(バナー重複はない状態)だけ表示させたいのですが、どのようにしたらよいのでしょうか? 補足:使用方法としては、外部で読み込み、<TD>に表示させようとしています。 よろしくお願いします。ご教授ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
バナーをセットした配列をシャッフルすれば、重複なくランダムにバナーを選ぶことができます。 以下、サンプル(動作確認済み) var ads = new Array(); ads[ads.length] = 'バナー1'; ads[ads.length] = 'バナー2'; ads[ads.length] = 'バナー3'; ads[ads.length] = 'バナー4'; ads[ads.length] = 'バナー5'; ads[ads.length] = 'バナー6'; ads[ads.length] = 'バナー7'; ads[ads.length] = 'バナー8'; ads[ads.length] = 'バナー9'; ads[ads.length] = 'バナー10'; function write_ad() { shuffle(ads); for (var i = 0; i < 5; i++) { document.write(ads[i], "<br>"); } } function shuffle(array) { for (var i = array.length; --i; ) { var r = Math.floor(Math.random() * (i+1)); if (r != i) { var tmp = array[i]; array[i] = array[r]; array[r] = tmp; } } } ※これを外部スクリプトファイルとして保存し、必要なHTMLで呼び出して write_ad(); を実行して下さい。 ※表示部分(document.write~)は適宜修正して下さい。 ※インデントに全角空白を使っているので、コピーする場合はタブなどに置換して下さい。