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);});