MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

TypedArray.prototype.find()

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

これは Harmony(ECMAScript 2015 (ES6)) の一部です。
この技術の仕様は最終化されていますが、使用にあたってはブラウザーごとの実装状況の一覧表を確認してください。

概要

要素は、与えられたテスト関数を満たした場合、typed arrayのvalueを返します。さもなければ、undefinedが返されます。TypedArrayはここではtyped array typesの一つです。

findIndex() メソッドも確かめて下さい。そのメソッドは値のかわりにtyped arrayの見つかった要素のindexを返します。

構文

typedarray.find(callback[, thisArg])

引数

callback
typed array内の各要素上で実行する関数。三つの引数を持ちます。:
element
typed array内で処理されている現在の要素
index
typed array内で処理されている現在のインデックス
array
findが呼び出されたarray
thisArg
オプション。callbackを実行するときthisとして使用するオブジェクト。

説明

find メソッドはcallback関数がtrue値を返す要素を見つけるまでtyped array 内に存在している各要素に対して一度callback関数を実行します。そのような要素が見つかったら、findはすぐに要素の値を返します。さもなければ、findundefinedを返します。callbackは値を割り当てたtyped array内のインデックスに対してのみ呼び出されます。削除されたり決して割り当てていないインデックスに対しては呼び出されません。

callbackは三つの引数で呼び出されます。: 要素の値、要素のインデックス、処理されるtyped arrayオブジェクト。

thisArg 引数がfindに渡されたら、 callbackの各呼び出しに対してthisとして使用されます。渡されない場合、undefinedが使用されます。

findは呼び出されているtyped arrayを変更しません。

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

例: typed array内の素数を探す

次の例では、素数であるtyped array内の要素を探します(または、素数でない場合、undefinedを返します)。

function isPrime(element, index, array) {
  var start = 2;
  while (start <= Math.sqrt(element)) {
    if (element % start++ < 1) {
      return false;
    }
  }
  return element > 1;
}

var uint8 = new Uint8Array([4, 5, 8, 12]);
console.log(uint8.find(isPrime)); // 5

仕様

仕様 ステータス コメント
ECMAScript 2015 (6th Edition, ECMA-262)
%TypedArray%.prototype.find の定義
標準 初期定義。

ブラウザ実装状況

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

関連情報

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

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