JavaScript入門 | 標準オブジェクト | Arrayオブジェクト

JavaScriptにおいて配列は、順序付けられた値の集合として定義され、Arrayオブジェクトとして扱われる。

Arrayメソッド

JavaScriptには、配列に関連する作業を簡単に行えるように、さまざまなメソッドが用意されている。Arrayメソッドは、Arrayオブジェクトに定義された配列関連の作業を行うためのメソッドである。

  1. Array.isArray()
  2. Array.from()
  3. Array.of()

Array.isArray()メソッド

Array.isArray()メソッドは、渡された値がArrayオブジェクトであるかどうかを検査する。

Array.isArray([]);          // true
Array.isArray(new Array()); // true
Array.isArray(123);         // false
Array.isArray("Array");     // false
Array.isArray(true);        // false

Array.from()メソッド

ECMAScript 6から追加されたArray.from()メソッドは、次のオブジェクトを配列のように変換する。

  1. 配列に似たオブジェクト: lengthプロパティとインデックス付き要素を持つオブジェクト
  2. 反復可能なオブジェクト: MapSetオブジェクト、文字列のように、その要素を個別に選択できるオブジェクト

ただし、このように生成されたオブジェクトは厳密にはArrayオブジェクトではなく、Arrayオブジェクトの子クラスである。

function arrayFrom() {
    return Array.from(arguments);
}
Array.from(arrayFrom(1, 2, 3));        // [1, 2, 3]
var myMap = new Map([[1, 2], [3, 4]]);
Array.from(myMap);                     // [1, 2, 3, 4]
Array.from("JavaScript");              // [J,a,v,a,S,c,r,i,p,t]

Array.from()メソッドはFirefox 32.0以上のバージョンでのみサポートされる。

Array.of()メソッド

ECMAScript 6から追加されたArray.of()メソッドは、引数の数や型に関係なく、引数として渡された値から新しいArrayインスタンスを生成する。このとき、Array.of()メソッドとArrayオブジェクトのコンストラクタとの違いは、整数として渡された引数の処理方法にある。

new Array(10); // [,,,,,,,,,] -> 10個の配列要素を持つ空の配列を作成する。
Array.of(10);  // [10] -> 1個、つまり数値10の配列要素を持つ配列を作成する。

上の例でArrayオブジェクトのコンストラクタに整数10を引数として渡すと、コンストラクタは長さ10の空配列を作成する。しかし、Array.of()メソッドに整数10を引数として渡すと、整数10を配列要素として持つ長さ1の配列を作成する。

Array.of()メソッドはInternet Explorer、Opera、Safariではサポートされない。