前回にて配列について触れました。今回は、配列を活用した例として、曜日を日本語で表示していきます。まずは準備を・・・
1 |
var days = new Array("日","月","火","水","木","金","土"); |
他に利用するオブジェクトは日付時刻を管理するDateオブジェクトを使います。曜日はgetDayメソッドを使って取得できます。
getDayメソッドの戻り値は日曜日~土曜日を0~6の数値です。これをdays配列の添え字に指定することで日本語の曜日を求めることが可能になります。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> var days = new Array("日","月","火","水","木","金","土"); var date = new Date(); var day = days[date.getDay()]; document.write("今日は", day ,"曜日です。<br>"); //来年の今日の曜日をもとめる date.setFullYear( date.getFullYear() + 1 ); document.write("来年の今日は", days[date.getDay()],"曜日です。<br>"); </script> </body> </html> |
メソッドの戻り値を配列の添え字として使う
配列添え字には、メソッドの戻り値や変数を指定することができます。
1 |
var days = new Array("日","月","火","水","木","金","土"); |
サンプルコードでは、最初の要素である「日」の添え字は0で、「days[0]]とするとアクセスできます。日曜日を最初に持ってきている点がポイントです。配列の添え字には、DateオブジェクトのgetDayメソッドの戻り値を指定しています。
1 |
var day = days[date.getDay()]; |
この場合は、getDayメソッドの戻り値は、日曜日を0、土曜日を6とした0~6の範囲の数値です。戻り値の数値と配列の添え字が一致するようにしています。
リテラルによる配列生成
数値や文字列と同様に、配列をリテラルとして書くことも可能です。
1 |
[要素1,要素2, ...] |
要素をカンマ「,」で区切って並べ、全体を「 [ ] 」で囲みます。この配列リテラルを使うと、Arrayコンストラクタを使わずに配列を生成できます。
1 |
var days = new Array("日","月","火","水","木","金","土"); |
こういう風に書いていましたが…
1 |
var days = ["日","月","火","水","木","金","土"]; |
こうも書けます。
配列に色々なデータを入れてみる
javaScriptの配列には、1つの配列の各要素に異なる形式のデータを格納できます。
1 2 3 4 5 |
var box = new Array(3); box[0] = "箱の中身"; //文字列 box[1] = 500; //数値 box[2] = 100; //数値 |
C言語を学んできた私には、これは違和感があります。便利といえば便利ですが・・・ C言語では配列に異なるデータ型を入れられません。
配列の要素数を変更する
javaScriptでは、配列の要素の数を変えることができます。Arrayコンストラクタの引数に「5」を指定して、6番目に要素の値を代入すると、自動的に要素の数が6になります。
1 2 |
var ken = new Array(5); //要素数5の配列を生成 ken[5] = "群馬県"; //6番目の要素にデータを代入して要素数が6つになる |
1 |
var myArray = new Array(); //要素数を指定せず配列を生成 |
これだと、初期状態は要素数ゼロですが、値を代入することで要素数を増やせます。