Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

この記事は編集レビューを必要としています。ぜひご協力ください

Array.prototype プロパティは、Array  コンストラクタのプロトタイプを表します。

詳細

Array  インスタンスは、Array.prototype を継承します。全てのコンストラクタと同様に、コンストラクタのプロトタイプオブジェクトを変更して、全ての Array インスタンスを変更することができます。

豆知識~ Array.prototype はそれ自体が Array です:

Array.isArray(Array.prototype); // true

プロパティ

Array.prototype.constructor
オブジェクトのプロトタイプを生成する関数を指定します。
Array.prototype.length
配列の要素数を反映します。
Array.prototype[@@unscopables]
このシンボルは、with バインディングのスコープから除外されるプロパティ名を保持します。

メソッド

変更メソッド

これらのメソッドは配列を書き換えます。

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オブジェクトを返します。このオブジェクトは配列中の各インデックスに対する キー/値 ペアを保持しています。
Array.prototype.every()
配列中の全ての要素が、指定したテスト関数を満たした場合に true を返します。
Array.prototype.some()
配列中の少なくとも 1 つの要素が、指定したテスト関数を満たした場合に true を返します。
Array.prototype.filter()
配列中の要素のうち、指定したフィルタリング関数が true を返したもの全てを使って新しい配列を生成します。
Array.prototype.find()
配列中から、指定したテスト関数を満たす要素の値を返します。一つも見つからない場合は undefinedを返します。
Array.prototype.findIndex()

配列中から、指定したテスト関数を満たす要素のインデックスを返します。一つも見つからない場合は 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. Standard Initial definition.
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()

ブラウザ互換性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (有) (有) (有) (有) (有)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: taiyaki32p, mamodayo, DavidWalsh, teoli, ethertank, Potappo, fscholz, Mgjbot, Yuichirou
 最終更新者: taiyaki32p,