TypedArray.prototype.filter()

filter() メソッドは、提供された関数によって実装されたテストに合格したすべての要素を含む新しい型付き配列を作成します。 このメソッドのアルゴリズムは Array.prototype.filter() と同じです。 TypedArray は、TypedArray オブジェクトで型指定された配列型の1つです。

構文

typedarray.filter(callback[, thisArg])

引数

callback
typed array の各要素をテストする関数。次の引数で呼び出されます(element, index, typedarray)。要素を保つために true を返します。さもなければ、false を返します。
thisArg Optional
callback を実行するときに this として使用する値。

戻り値

テストに合格した要素を持つ新しい型付き配列。

説明

filter() メソッドは typed array 内の各要素に対して一度提供された callback 関数を呼び出し、callback が true 値を返すすべての値の新しい typed array を構築します。callback 関数は、値を割り当てた typed array のインデックスに対してのみ呼び出されます。削除されたり、値を割り当てていないインデックスに対しては呼び出されません。callback を渡さない typed array の要素は単純にスキップされ、新しい typed array に含められません。

callback は三つの引数で呼び出されます。:

  1. 要素の値
  2. 要素のインデックス
  3. 処理される typed array オブジェクト

thisArg 引数は filter に渡され、callback が呼び出されると、this 値として使用するために callback に渡されます。さもなければ、undefined 値が this 値として使用するために渡されます。callback によって最終的に観察可能な this 値は this に応じて決定されます。

filter() は呼び出された typed array を変化させません。

filter() によって処理される要素の範囲は、callback の最初の呼び出し前に設定されます。filter() の呼び出しが始まったあとで typed array に追加された要素は callback によって処理されません。typed array の存在している要素が変更されたり、削除された場合、callback に渡される値は、filter() が処理する直前の値になります。

小さな値をすべてフィルターする

次の例では、10以下の値をもつ要素をすべて取り除いた typed array を生成するために filter() を使用します。

function isBigEnough(element, index, array) {
  return element >= 10;
}
new Uint8Array([12, 5, 8, 130, 44]).filter(isBigEnough); 
// Uint8Array [ 12, 130, 44 ]

アロー関数を使用した型付き配列要素のフィルター

アロー関数 は、同じテストに対して短い構文を提供します。

new Uint8Array([12, 5, 8, 130, 44]).filter(elem => elem >= 10); 
// Uint8Array [ 12, 130, 44 ]

仕様書

仕様書
ECMAScript (ECMA-262)
TypedArray.prototype.filter の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
filterChrome 完全対応 45Edge 完全対応 14Firefox 完全対応 38IE 未対応 なしOpera 未対応 なしSafari 完全対応 9.1WebView Android 未対応 なしChrome Android 完全対応 45Firefox Android 完全対応 38Opera Android 未対応 なしSafari iOS 完全対応 9.3Samsung Internet Android 完全対応 5.0nodejs 完全対応 4.0.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報