JavaScriptのお勉強(6)
前回の(5)で、秒数を取得して偶数か奇数かで配信される広告を「ASP-1」か「ASP-2」かに割り振りましたが
これだと、比率が50%:50%に固定されてしまいますね。
例えば「ASP-1」を2割、8割は「ASP-2」にしたいな、という時、どうしようか、考えました。
二種類の文字、例えば "G" と "O" が入っている配列を用意して、ランダムにその配列からひとつを抽出して、「 G 」なら「ASP-1」、「 O 」なら「ASP-2」とすれば、できるんじゃなかろうか?
やってみました。
まずは広告配信枠を用意
<div id="test1"></div>
配列の準備
const goro = ['G','G','O','O','O','O','O','O','O','O'];
広告を表示する関数の準備(今回はただ文字列を表示するだけにしてみました)
function command1(){document.getElementById('test').innerHTML = "ASP-1";}
function command2(){document.getElementById('test').innerHTML = "ASP-2";}
配列からランダムにひとつ選び出し、その内容によってコマンドを分岐実行(三項演算子)
let num = Math.floor(Math.random()*10);
goro[num]=='G'?command1():command2();
結果は・・・
大成功\(^o^)/
リロードする度に表示される文字がランダムに入れ替わります。
表示される比率は、「ASP-1」が3割になっているはず・・・
リロードボタンつけてみましたので押すと確認できます(笑)
確率的に「ASP-1」のほうが少なくなっているので、ず~っと連続して「ASP-2」ばっかり出る事もありますね(・・;)
一発で「ASP-1」が出た人は今日は幸運てことで(笑)
コメント