Array.prototype
プロパティは、Array
コンストラクターの prototype を表します。
説明
Array
インスタンスは、Array.prototype
を継承します。すべてのコンストラクターと同様に、コンストラクターの prototype オブジェクトを変更して、すべての Array
インスタンスを変更することができます。
豆知識: Array.prototype
はそれ自体が Array
です:
Array.isArray(Array.prototype); // true
プロパティ
Array.prototype.constructor
- オブジェクトの prototype を生成する関数を指定します。
Array.prototype.length
- 配列内の要素数を反映します。
Array.prototype[@@unscopables]
with
バインディングのスコープから除外されるプロパティ名を保持するシンボル。
メソッド
Mutator メソッド
これらのメソッドは、配列を書き換えます。
Array.prototype.copyWithin()
- 配列内で配列内の要素をコピーします。
Array.prototype.fill()
- 配列内の指定した開始位置から終了位置までの要素を固定値で埋めます。
Array.prototype.pop()
- 配列から最後の要素を取得し、戻り値として返します。
Array.prototype.push()
- 配列の最後に 1 個以上の要素を追加し、新しい配列の長さを返します。
Array.prototype.reverse()
- 配列の要素の順番を逆転させます (最初の要素は最後に、最後の要素は最初になります)。
Array.prototype.shift()
- 配列から最初の要素を取り除き、その要素を返します。
Array.prototype.sort()
- 配列内で要素を整列し、配列を返します。
Array.prototype.splice()
- 配列に対して複数の要素を追加したり取り除いたりします。
Array.prototype.unshift()
- 配列の最初に 1 個以上の要素を追加し、配列の変更後の長さを返します。
アクセサーメソッド
これらのメソッドは呼び出し対象の配列を書き換えず、配列を何らかの形で表したものを返します。
Array.prototype.concat()
- この配列に他の配列や値を結合して新しい配列を返します。
Array.prototype.includes()
- この配列が特定の要素を含むかどうか判定し、その結果を
true
またはfalse
で返します。 Array.prototype.join()
- 配列のすべての要素を結合した文字列を返します。
Array.prototype.slice()
- 配列の一部を取り出して新しい配列として返します。
Array.prototype.toSource()
- 指定された配列を表す配列リテラルを返します。この値を使って新しい配列を作れます。
Object.prototype.toSource()
メソッドを上書きしています。 Array.prototype.toString()
- 配列とその要素を表す文字列を返します。
Object.prototype.toString()
メソッドを上書きしています。 Array.prototype.toLocaleString()
- 配列とその要素を表すロケールに従った文字列を返します。
Object.prototype.toLocaleString()
メソッドを上書きしています。 Array.prototype.indexOf()
- 指定された値と等しい値を持つ最初の (添字の一番小さい) 要素の添字を返します。見つからない場合、-1 を返します。
Array.prototype.lastIndexOf()
- 指定された値と等しい値を持つ最後の (添字の一番大きい) 要素の添字を返します。見つからない場合、-1 を返します。
反復メソッド
いくつかのメソッドは、配列を処理する際にコールバックされる関数を引数に取ります。これらのメソッドが呼ばれる時、配列の length
値を一時記憶するため、コールバック中にこの長さを超えて追加された要素にはアクセスしません。配列に対するその他の変更 (要素の値の書き換えや削除) は、変更された要素にメソッドが後でアクセスした場合の操作結果に影響を及ぼす可能性があります。そのような場合におけるこれらのメソッドの振る舞いは正確に定義されていますが、コードの読者を混乱させないよう、その振る舞いに依存すべきではありません。配列を変化させなければならない場合は、代わりに新しい配列にコピーしてください。
Array.prototype.forEach()
- 配列中のそれぞれの要素について関数を呼び出します。
Array.prototype.entries()
- 新しい
Array Iterator
オブジェクトを返します。このオブジェクトは、配列中の各インデックスに対する key/value ペアを保持しています。 Array.prototype.every()
- 指定したテスト関数を配列中のすべての要素が満たした場合に
true
を返します。 Array.prototype.some()
- 指定したテスト関数を配列中の少なくとも 1 個の要素が満たした場合に
true
を返します。 Array.prototype.filter()
- 指定したフィルタリング関数が
true
を返す、配列中の要素を格納した新しい配列を生成します。 Array.prototype.find()
- 指定したテスト関数を満たす、配列中の要素の値を返します。1 個も見つからない場合は
undefined
を返します。 Array.prototype.findIndex()
- 指定したテスト関数を満たす、配列中の要素のインデックスを返します。1 個も見つからない場合は
undefined
を返します。 Array.prototype.keys()
- 新しい
Array Iterator
を返します。このオブジェクトは配列中の各インデックスのキーを保持します。 Array.prototype.map()
- 配列内のすべての要素に対して与えられた関数を呼び出し、その結果を格納した新しい配列を生成します。
Array.prototype.reduce()
- アキュムレータと配列内のすべての要素に対して (左から右の順で) 関数を適用し、単一の値に還元します。
Array.prototype.reduceRight()
- アキュムレータと配列内のすべての要素に対して (右から左の順で) 関数を適用し、単一の値に還元します。
Array.prototype.values()
- 新しい
Array Iterator
オブジェクトを返します。このオブジェクトは、配列中の各インデックスの値を保持します。 Array.prototype[@@iterator]()
- 新しい
Array Iterator
オブジェクトを返します。このオブジェクトは、配列中の各インデックスの値を保持します。
ジェネリックメソッド (非標準)
JavaScript の Array
オブジェクト上の多くのメソッドは、配列型 (array-like) のあらゆるオブジェクトに対し広く適用されるよう設計されています。すなわち、どんなオブジェクトでも length
プロパティを持ち、数値プロパティ名を使う (array[5]
のような) アクセスが有効なら、それらを適用できます。join
のような一部のメソッドは、呼び出し対象オブジェクトの length
や数値プロパティを読み取るだけです。 一方、reverse
のようなメソッドは、対象オブジェクトの数値プロパティや length
が変更可能であることを要求するため、length
プロパティや設定される合成数値プロパティの変更を許さない String
のようなオブジェクトに対して呼び出すことができません。
仕様
仕様書 | 策定状況 | 備考 |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | 標準 | 初期定義。 |
ECMAScript 5.1 (ECMA-262) Array.prototype の定義 |
標準 | |
ECMAScript 2015 (6th Edition, ECMA-262) Array.prototype の定義 |
標準 | メソッド追加: copyWithin() , fill() , entries() , keys() , values() , find() , findIndex() |
ECMAScript 2017 Draft (ECMA-262) Array.prototype の定義 |
ドラフト | メソッド追加: includes() |
ブラウザーの実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |