気の向くままに辿るIT/ICT/IoT
JavaScript

JavaScript / Arrayオブジェクト

ホーム前へ次へ
ECMAScriptベースのJavaScriptとは?

JavaScript / Arrayオブジェクト

ECMA-262 Edition 5.1 / ECMAScriptベースのJavaScript文法

ECMAScript / ECMA-262 Edition 5.1ベースのJavaScript文法

プロトタイプベースのオブジェクト指向

オブジェクト指向 / オブジェクトと種類

Arrayオブジェクト

 Arrayオブジェクトは、配列・リストのオブジェクトです。

 var array1 = new Array ( )

 var array2 = Array ( )

 Arrayオブジェクトは、new 演算子を伴うコンストラクタとしての呼び出し、new 演算子を伴わない関数としての呼び出しの何れのケースもインスタンスであるオブジェクトの生成・初期化(インスタンス化)を実行します。

 var array3 = new Array ( num )

 var array4 = new Array ( arg1,arg2...,argN )

 var array5 = Array ( num )

 var array6 = Array ( arg1,arg2...,argN )

 また、 new 演算子を伴うArrayオブジェクトの呼び出しには、3通りあり、引数なしのケース、引数に数値を渡し、その要素数分のカラの領域が確保するケース、カンマ区切りで引数を複数指定し、それらの引数を要素とした、その数の配列とするケースのそれぞれに初期化された状態のインスタンスであるオブジェクトが生成されます。

Arrayオブジェクトのプロパティ

 Arrayオブジェクトのプロパティは、下記の通りです。

Arrayオブジェクトの標準組み込みプロパティ
Array.isArray ( )引数を1つ取り、配列・リストであるか否かのブーリアン(ブール)値である true / false を返すメソッド
Array.prototype標準組み込みObjectプロトタイプオブジェクトとして設定

Array.prototypeオブジェクトのプロパティ

 Array.prototypeオブジェクトの組み込みプロパティは、下記の通りです。

 尚、Array.prototype は、Arrayオブジェクトそのものとして参照される為、これらをコンストラクタ、または関数(メソッド)として利用する際には、".prototype" は不要で、例えば、array2 が、インスタンスである場合、array2.concat ( ... ) 等とします。

Array.prototypeオブジェクトの標準組み込みメソッド
Array.prototype.constructorインスタンスを生成する関数を返す。既定は、標準組み込みArrayコンストラクタ。
Array.prototype.concat ( )各配列要素と与えられた引数1つまたは、複数を順に連結した文字列を返す。
Array.prototype.every ( )関数を引数に取り、配列要素の何れかが、その関数の戻り値としてfalseを返す場合、false、全てtrueの場合、trueを返す。
Array.prototype.filter ( )関数を引数に取り、その関数が、trueを返す配列要素の値で構成される配列を新たに構築。
Array.prototype.forEach ( )配列要素1つにつき1度、引数の関数を呼ぶ。
Array.prototype.indexOf ( )引数の文字列と配列要素を昇順で厳密等価アルゴリズム(===)で比較した際、一致する部分文字列があれば、配列内の最初のインデックスを、それ以外は-1を返す。
Array.prototype.join ( )セパレータ(区切り文字)となる引数を取り、配列要素をそのセパレータで連結して(区切って)分割した文字列を返す。引数が指定されない場合、既定はカンマ区切り。
Array.prototype.lastIndexOf ( )引数の文字列と配列要素を降順で厳密等価アルゴリズム(===)で比較した際、一致する部分文字列があれば、配列内の最後のインデックスを、それ以外は-1を返す。
Array.prototype.map ( )関数を引数に取り、配列要素1つにつき一度、その関数を呼んだ結果から成る新たな配列を返す。
Array.prototype.pop ( )配列の最後尾の要素を削除し、その要素を返す。
Array.prototype.push ( )配列の最後尾に要素を追加。
Array.prototype.reduce ( )reduceとは「減らす・減量」の意。隣接する2つの配列要素に対して(左から右へ)同時に関数を適用し、単一の値とする。配列要素が数値の場合、配列要素内の要素を全て足した最後の値を返し、n次元配列の場合、n-1次元配列とする。
Array.prototype.reduceRight ( )隣接する2つの配列要素に対して(右から左へ)同時に関数を適用し、単一の値とする。
Array.prototype.reverse ( )配列要素内の順序を逆順にして返す。
Array.prototype.shift ( )配列の先頭要素を削除し、その要素を返す。
Array.prototype.slice ( )開始位置と終了位置の2つの引数を取り、その位置に該当する文字を返し、文字数が不足する場合、最後まで、カラの場合、カラを返す。
Array.prototype.some ( )関数を引数に取り、配列要素の何れか1つでもtrueを返す場合、trueを返す。
Array.prototype.sort ( )比較関数を引数に取り、並べ替えをする。引数がない場合、辞書順。
Array.prototype.splice ( )第1引数に開始位置として要素の添え字、第2引数に取り除く要素数を指定すると、(第1引数のみ指定されると第1引数以降の全てが)取り除かれた要素から成る配列を返し、更に第3引数以降に取り除く要素数と同数の引数を指定すると、それらと入れ替えた後、その取り除かれた古い要素から成る配列を返す。
Array.prototype.toLocaleString ( )ロケール仕様である事を除き、toString同様。
Array.prototype.toString ( )引数で指定したオブジェクトの全ての配列要素をカンマ区切りの文字列とする。
Array.prototype.unshift ( )配列の先頭に要素を追加。

 尚、Arrayオブジェクト自体には、引数で指定したオブジェクトのプリミティブ(原始的な)値を返す valueOf メソッドはありませんが、Array.prototypeプロパティのベースである組み込みObject.prototypeオブジェクトの valueOf メソッド( Object.prototype.valueOf )を継承します。

 ECMAScript 第5版/第5.1版では、Array.prototypeオブジェクトで定義した標準組み込み関数(メソッド)は、汎用化されることが意図される為、 this 値が、Arrayオブジェクトであることが要求されることはなく、メソッドとして使用する場合、オブジェクトの他の種類に転送することも可能となっていますが、各関数(メソッド)が、実際のところホストオブジェクトにうまく適用されるか否かについては、実装・処理系依存とされています。

 ちなみに toString と toLocaleString が汎用的ではなかった第3版の実装では、これらを他のオブジェクトに適用した場合、TypeError例外がスローされるであろうことが付記されています。(付録 E (有益な情報) 第3版と非互換として導入する第5版での追加と変更)

ECMA-262 Edition 5.1 訳 / 当該仕様ページ例

ECMAScriptベースのJavaScriptリファレンス

ホーム前へ次へ