|
||||
|
|
5章 配列
|
|
|
配列とは、、
複数の値をまとめて扱う場合に1〜2つ程度であれば前章で説明したように変数を使用すれば問題ないとおもいます。 しかし扱うデータが100個になった場合はどうでしょう!? [ 変数を100個宣言して、、] なんてしていてはとても大変です。 こんな時には通常は [ 配列 ] と呼ばれるものを使用します。
配列とは複数の変数の集合を表わします。 宣言時に使用する要素数を指定ます。 ( 要素数を初めに指定せず動的に配列のサイズを変更する事も可能です ) またアクセス時は要素番号を指定して各要素にアクセスします。 JavaScriptにはArrayという配列専用のクラスが提供されていて通常はそのクラスを使用します。Arrayクラスは配列を扱う時に便利なプロパティやメソッドを色々提供してくれています。 配列を使用しない場合 [ 100個の変数を表示させる ]
document.write(a1) document.write(a2) document.write(a3) document.write(a4) ↓ document.write(a100) 配列を使用した場合 [ 100個の変数を表示させる ]
for(cnt=0;cnt<100;cnt++){ document.write(myArray[cnt]) ; } 配列を使わない例では [ document.write() ] を 100回繰返さないといけないのでとても面倒です。 下のように配列を使用した場合は for ステートメントを使ってスマートに記述する事が出来ます。myArrayが Arrayオブジェクトで、cntを添字とよびます。 添え字とは配列の何番目の要素を参照するかを指定するインデックスの役割を果たします。 配列の宣言、参照のサンプル
// 配列の宣言 var week = new Array(7) ; '0〜6の7要素を持つ配列が作成されます。 // 要素への代入 week[0] = "sun" ; week[1] = "mon" ; week[2] = "tue" ; week[3] = "wed" ; week[4] = "thu" ; week[5] = "fri" ; week[6] = "sat" ; // 要素の参照 document.write(week[3]) ; 'sunと出力 document.write(week[6]) ; 'satと出力 [ 上記を図解すると・・・ ]
配列の使用法
[ 配列の作成 1 ]
var myArray = new Array(100);
この例ではmyArrayという配列名で0〜99まで100個の要素を持つ配列が作成されます。 [ 配列の作成 2 ]
var strArray = new Array(a,b,c);
この例では配列の要素 1番目に [ a ] が 2番目に [ b ] が 3番目に [ c ] が格納してある配列が作成されます。つまり宣言と同時に初期化もする事が出来ます。 [ 配列への代入 ]
myArray[0] = "Hello World" ;
配列の先頭に文字列 [ "Hello World ] を代入しています。当然配列には数値を代入する事も可能で、数値と文字列との混合といった事も可能です。 [ 配列からの参照 1 ]
var str = myArray[0] ;
配列の先頭にある要素を変数へ代入します。 [ 配列からの参照 2 ]
document.write(strArray) ;
添字を指定しないで配列を参照しています。この結果は要素全がカンマ区切りで出力されます。 [ 不正な要素へのアクセス ]
var str = myArray[100] ;
myArrayの配列は 0〜99までの要素が確保されていますがこの例ではそれ以上の 100番目の要素にアクセスしています。通常C言語など他のプログラミング言語などでは確保してある領域以外にアクセスする訳ですので、メモリ上にある他の変数の領域を壊してしまう恐れがあり当然エラーになります。 しかしJavaScriptで上記のコードはエラーとなりません。気持ち悪い感じもしますがここで変数 str には何も入力されていない状態を表わす [ undefined ] が代入されます。 [ 不正な配列へのアクセス ]
var str = myarray[100] ;
ここで参照しようとしている配列 myarray は作成されていません。「上の例で勝手に確保してくれたから今回も勝手に確保してくれるかなー」なんて考えがちですが、残念ながらこれはエラーになってしまいます。 連想配列とは、、
上記で説明したように、通常の配列では添え字に要素番号を表す数字を使用します。それに対して連想配列とは、添字にnameといった文字列を使用できるので要素の意味を明確にする事が出来、簡単なデータベースとして使用できます。
JavaScriptの Arrayクラスには上で述べた添字に整数を使用する通常の配列以外に、添字に文字列を使用する連想配列の機能が提供されています。 特別なメソッドなどは必要なく、単純に添え字の部分に文字列を指定するだけです。 連想配列への代入
price["apple"] = 200 ; price["orange"] = 100; 添字名 "apple" に 200を、添字名 "orange" に 100を代入しています。 配列からの参照
document.write("The price of an apple is " , price["apple"] ," yen.");
添字名 "apple" によって簡単に対象の添字の要素を参照する事が出来ます。 Arrayクラスが提供するプロパティ、メソッド
length
[配列の長さ] = 配列名.length ;
配列の要素数を返します。 join
[連結された文字列] = 配列名.join(連結する文字) ;
配列の全要素を引数で指定した文字で連結してその結果を返します。 reverse
[逆順になった配列] = 配列名.reverse ;
配列を逆順に並び替えその結果の配列を返します。 例えば [ 配列A ] のような配列が [ 配列B ] になります。
sort
[並び替えられた配列] = 配列名.sort ;
配列をソートして並び替えられた配列を返します。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||