Array.grep (配列要素抽出)

  1. 文法
  2. 詳細
  3. 引数
  4. 戻り値

1. 文法

メンバ型
関数
メンバ所有者
global.Array インスタンス
呼び出し
instance .grep( cond, match, * )

2. 詳細

配列から、条件に適合した要素を抽出します。 Perlのgrep関数に似ています。

当該コンテキスト(thisオブジェクト)は変更されません。

3. 引数

cond ( Function | RegExp )
各要素に対して実行する関数、または適用する正規表現を指定します。 この引数が真を返したときに、「条件に適合」したと見なされます。
関数の場合、二つの引数を受け取り、ブール値を返す関数を指定します。 一つめの引数は、対象要素のインデックス番号です。 二つめの引数は、対象要素の値です。 三つめ以降の引数は、 Array.grep自身の オプション引数そのものです。
正規表現の場合、TJS RegExpオブジェクトを指定します。 このオブジェクトのtestメソッド( cond.test(各要素) )が実行され、その結果が真の時に「条件に適合」したと見なされます。
match ( Bool ) [default: true]
マッチ条件を選択します。 trueを指定した場合は、 condが真を返したときにマッチしたと見なされます。 falseを指定した場合は、 condが偽を返したときにマッチしたと見なされます。 つまり、「条件に適合」の意味が反転します。
* ( Any )
オプション引数を指定します。必須ではありません。 cond関数の実行に必要なパラメータがあれば、それらを指定します。 condが関数の場合、ここで指定されたオプション引数は、そのまま condに渡されます。 condが正規表現の場合には、オプション引数は無視されます。

4. 戻り値

条件に適合した要素で構成される配列を返します。

5. 例

// 配列 foo から、文字列 'HOGE' で始まる要素のみ抽出します。
var hoge = foo.grep(/^HOGE/);
// 配列 foo から、void でない要素のみ抽出します。
var hoge = foo.grep(function (index, value) {return (value !== void);});