TypedArray.prototype.filter()

この翻訳は不完全です。英語から この記事を翻訳 してください。

概要

提供された関数によって実装されるテストを渡すすべての要素で新しいtyped arrayを生成します。このメソッドはArray.prototype.filter()と同じアルゴリズムを持っています。TypedArrayはここではtyped array typesの一つです。

構文

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値はthe usual rules for determining the this seen by a functionに応じて決定されます。

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 ]

arrow functionsを使用してtyped arrayの要素をフィルターする

Arrow functions は、同じテストに対して短い構文を提供します。

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

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'TypedArray.prototype.filter' in that specification.
Standard 初期定義。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 未サポート 38 (38) 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 未サポート 38.0 (38) 未サポート 未サポート 未サポート

関連情報

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

 このページの貢献者: shide55
 最終更新者: shide55,