JavaScript/Array

出典: フリー教科書『ウィキブックス(Wikibooks)』
移動: 案内検索

配列(はいれつ、array)とは、数値や文字列などのデータまたは変数順番に並べた集合です。

配列リテラル[編集]

配列リテラル(はいれつリテラル、array literal)は[]で囲んで表します。

var array = [ 'A', 'B', 'C', 'D', 'E' ];
alert( array[0] ); // A
alert( array[1] ); // B
alert( array[2] ); // C
alert( array[3] ); // D
alert( array[4] ); // E
alert( array.length ); // 5

配列の要素(ようそ、element)にはインデックスindex、添え字、添字、そえじ)と呼ばれる0から始まる数値を使用してアクセスします。インデックスは1ではなく0から始まることに注意してください。配列の最後の要素のインデックスは、lengthプロパティで取得できる配列の長さ(要素数)よりも1小さくなります。JavaScriptでは1つの配列に異なるデータ型のオブジェクトを入れることができます。

Array[編集]

Arrayオブジェクトのコンストラクタの引数は要素のリスト、もしくは配列の長さです。

配列の初期化は、次のようにして行います。

// [ 'A', 'B', 'C', 'D', 'E' ]
var array = new Array( 'A', 'B', 'C', 'D', 'E' );

または

// [ 'A', 'B', 'C', 'D', 'E' ]
var array = new Array(5);
array[0] = 'A';
array[1] = 'B';
array[2] = 'C';
array[3] = 'D';
array[4] = 'E';

後者はやや古い書き方です。


また、for文を使って、動的に値を代入することもできます。 以下の例では、それぞれ1~5の整数が代入されます。

// [1, 2, 3, 4, 5 ]
var array = new Array();
for(var i=0; i<5; i++){
  array[i] = i;
}

プロパティ[編集]

配列の反復処理[編集]

配列の要素を1つずつ取り出して処理するには、for文を使用します。

// A, B, C, D, E を順番にアラート
 
var array = [ 'A', 'B', 'C', 'D', 'E' ];
 
for ( var i = 0, l = array.length; i < l; i++ ) {
    var element = array[i];
    alert(element);
}

JavaScript 1.6以降では、ECMA-262第5版で導入されたArray.prototype.forEachメソッドを使用することができます。ただし、一部の処理系ではサポートされていません。

// A, B, C, D, E を順番にアラート
 
var array = [ 'A', 'B', 'C', 'D', 'E' ];
 
array.forEach(function(element){
    alert(element);
});

for-in文などの構文はオブジェクトのプロパティを順番に取り出す構文であり、配列オブジェクトにプロパティやメソッドが追加された場合それらも取り出されてしまうため、配列の反復処理に用いることは推奨されません。

配列の配列[編集]

配列の配列(はいれつのはいれつ、array of arrays)とは、配列を要素に含む配列です。将棋盤など2次元のデータ構造を表すのに用いられます。

var array = [
    [ 'A', 'B', 'C', 'D', 'E' ],
    [ 'A', 'B', 'C', 'D', 'E' ],
    [ 'A', 'B', 'C', 'D', 'E' ],
    [ 'A', 'B', 'C', 'D', 'E' ],
    [ 'A', 'B', 'C', 'D', 'E' ]
];
alert( array[0][0] ); // A
alert( array[1][0] ); // A
alert( array[2][2] ); // C
alert( array[3][2] ); // C
alert( array[4][4] ); // E

n次元の配列を一般にn-次元配列n-dimensional array)、多次元配列(たじげんはいれつ、multidimensional array)などとも呼びます。プログラミング言語によっては、上記の例のように同じ次元の要素数がそろっている正方形の形をしたものを多次元配列、そうでない不規則なものをジャグ配列(ジャグはいれつ、jagged array)と呼んで区別することもありますが、JavaScriptでは特に区別しません。

このページ「JavaScript/Array」は、書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にノートへどうぞ。