目次

オブジェクトなJavaScriptの基礎講座

曜日別ランダム文字列の表示(2次元配列)

◆ はじめに

ホームページへアクセスした時で曜日別にランダムなメッセージを表示したい時、以下のスクリプトをご利用ください。

JavaScriptでも2次元配列(多次元配列)が可能です。(あまり知られていない) 1次元配列をnewでArrayしてから、その配列の要素に対してまたnewでArrayすると2次元配列ができます。

◆ スクリプト

<html> 
<head> 
<script type="text/javascript"> 
<!---曜日ごとのメッセージ 
function randmsg() { 
     var msgcnt =5;
     var mes = new Array(7); 

     for(i = 0; i <= 6; i++){
        mes[i] = new Array(msgcnt);      /* 2次元配列作成  */
     }
    
     mes[0][0]  = "日曜日のメッセージ0"; 
     mes[0][1]  = "日曜日のメッセージ1"; 
     mes[0][2]  = "日曜日のメッセージ2"; 
     mes[0][3]  = "日曜日のメッセージ3"; 
     mes[0][4]  = "日曜日のメッセージ4"; 
     mes[1][0]  = "月曜日のメッセージ0"; 
     mes[1][1]  = "月曜日のメッセージ1"; 
     mes[1][2]  = "月曜日のメッセージ2"; 
     mes[1][3]  = "月曜日のメッセージ3"; 
     mes[1][4]  = "月曜日のメッセージ4"; 
     mes[2][0]  = "火曜日のメッセージ0"; 
     mes[2][1]  = "火曜日のメッセージ1"; 
     mes[2][2]  = "火曜日のメッセージ2"; 
     mes[2][3]  = "火曜日のメッセージ3"; 
     mes[2][4]  = "火曜日のメッセージ4"; 
     mes[3][0]  = "水曜日のメッセージ0"; 
     mes[3][1]  = "水曜日のメッセージ1"; 
     mes[3][2]  = "水曜日のメッセージ2"; 
     mes[3][3]  = "水曜日のメッセージ3"; 
     mes[3][4]  = "水曜日のメッセージ4"; 
     mes[4][0]  = "木曜日のメッセージ0"; 
     mes[4][1]  = "木曜日のメッセージ1"; 
     mes[4][2]  = "木曜日のメッセージ2"; 
     mes[4][3]  = "木曜日のメッセージ3"; 
     mes[4][4]  = "木曜日のメッセージ4"; 
     mes[5][0]  = "金曜日のメッセージ0"; 
     mes[5][1]  = "金曜日のメッセージ1"; 
     mes[5][2]  = "金曜日のメッセージ2"; 
     mes[5][3]  = "金曜日のメッセージ3"; 
     mes[5][4]  = "金曜日のメッセージ4"; 
     mes[6][0]  = "土曜日のメッセージ0"; 
     mes[6][1]  = "土曜日のメッセージ1"; 
     mes[6][2]  = "土曜日のメッセージ2"; 
     mes[6][3]  = "土曜日のメッセージ3"; 
     mes[6][4]  = "土曜日のメッセージ4"; 
     myDate = new Date(); 
     yubi=myDate.getDay(); 
     return(mes[yubi][rangeRandom(0,4)]); 
}
function rangeRandom(num1,num2) {
    if((num1 - num2) > 0)   {
        big = num1;
        small = num2;
    } else  {
        big = num2;
        small = num1;
    }
    range = big - small + 1;
    number = Math.floor(Math.random()*range) + small;
    return(number);
}
//end ---> 
</script> 
</head> 
<body> 
<script type="text/javascript">
<!---曜日ごとのメッセージをランダム表示 
   document.write(randmsg()); 
// end ---> 
</script> 
</body> 
</html>

◆ スクリプト実行結果

リロード(再読み込み)すると、多分以下のメッセージが変りますよ!
----------------------------------------------------------------



----------------------------------------------------------------

◆ 補足説明

曜日毎のメッセージを増やす場合は、msgcntを増やし、mes[0][4] = "日曜日のメッセージ4";の代入文をmsgcntに対応して増やします。

[例]
msgcnt=6; すると、メッセージ代入文も mes[0][5] = "日曜日のメッセージ5";てな感じで増やしてください。

また、メッセージの表示位置は、HTML文書の任意の場所以下のタグを挿入して下さい。

<script type="text/javascript">
<!---曜日ごとのメッセージをランダム表示
document.write(randmsg());
// end --->
</script>

目次