TypedArray.prototype.findIndex()

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

これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。

概要

typed array内の要素が与えられたテスト関数を満たすなら、typed array内のインデックスを返します。さもなければ、-1が返されます。

find() メソッドも確かめて下さい。そのメソッドは、typed array内の見つかった要素のインデックスのかわりにを返します。

購入

typedarray.findIndex(callback[, thisArg])

引数

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

説明

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

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

thisArg引数がfindIndexに与えられたら、callbackの各呼び出しでthisとして使用されます。thisArg引数が与えられないなら、 undefinedが使用されます。

findIndexメソッドは呼び出されるtyped arrayを変更しません。

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

例: typed array内の素数のインデックスを探す

次の例では、typed array内の素数の要素のインデックスを探します(または、素数でないなら-1を返します)。

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, 6, 8, 12]);
var uint16 = new Uint16Array([4, 6, 7, 12]);

console.log(uint8.findIndex(isPrime)); // -1, not found
console.log(uint16.findIndex(isPrime)); // 2

仕様

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

ブラウザ実装状況

機能 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,