JavaScript での配列の生成と代入について

HTMLやCSSはプログラミング言語ではないので、これまで「配列」を利用することがなかったのですが、JavaScript を利用する場合はどうしても必要になるので、今回は「配列」について記述しておくことにします。

配列とは

配列は、一つの変数に複数の値を代入するために用意される複数の「箱」のようなものです。

変数が、値を代入することができる一つの「箱」だとすると、その箱の中に値ではなく複数の「箱」があると思ってください。

この配列を持った変数に値を代入する場合、その「箱」の中の「箱」の場所を指定して、代入することになります。

配列の生成

JavaScript で配列を生成する方法は、組み込みオブジェクトである Array() か [] を変数に代入することです。

Array(3); とすると、あらかじめ3つの配列が作成されますが、後から4つ目の値を代入しても問題ありません。

具体的にやってみると、以下のような方法で配列を生成できます。

  • var a=new Array();
  • var b=Array();
  • var c=[];

なお、new 演算子の有無や [] を代入した場合がどちらの挙動を示すのかは分かりません。(というか、new があってもなくても同じような気がします。)

Array() の中に一つ数値を入れると、その数だけ配列が作成されますが、カンマで区切って2つ以上入力すると、文字列と同様にその配列の初期値となります。

配列への値の代入

配列への値の代入は、変数と同様にイコール(=)で代入できます。

配列のメソッドである、push() と unshift() でも値を代入できますが、これらは配列の最後と最初に値を追記するものであり、意図した位置の配列に代入するものではないのでここでは省かせていただきます。

また、JavaScript では整数以外に文字列を配列の添え字にできるため、連想配列が利用できます。

以下は、ちょっとした具体例です。

  • var a = new Array();
  • a = [[12],[52,0.38,'abc']];
  • a['A'] = 'def';
  • document.write(a[0] + '|' + a[1][2] + '|' + a['A'] + '|' + a);

上の例文では、変数 a に配列を作成して、a[0] に 12 が、a[1] にはさらに配列を作成して 52,0.38,'abc' を a[1][0] から a[1][2] まで代入しています。

次に文字列を添え字にした a['A'] に 'def' を代入して、最後に表示してみました。

実行した結果

結果を見てみると、文字列を添え字にした配列は、数値を添え字にした場合と扱いが違い、最後に表示した a 自体には a['A'] の内容は表示されません。

また、文字列を添え字にした a['A'] は a.A でも表示できるのですが、これは、配列を Array() で作成しているにもかかわらず文字列を添え字にした連想配列は、Object() で作成した仕様になるためです。

逆にあらかじめ a = new Object(); で作成しても、添え字に数値を利用すると Array() での仕様になるため、a.0 というような表示はできません。

後書き

それにしても、やってみて思ったんですが Array() でなく Object() でも配列が作成できてしまうようです。

スポンサードリンク

inserted by FC2 system