TypedArray.prototype.findLastIndex()

Baseline 2022

Newly available

Since August 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

findLastIndex()TypedArray インスタンスのメソッドで、型付き配列を逆順で反復処理し、指定したテスト関数を満たす最初の要素のインデックスを返します。テスト関数を満たす値がなかった場合は、-1 を返します。このメソッドのアルゴリズムは Array.prototype.findLastIndex() と同じです。

試してみましょう

構文

js
findLastIndex(callbackFn)
findLastIndex(callbackFn, thisArg)

引数

callbackFn

配列のそれぞれの要素に対して実行する関数です。要素がテストに合格した場合は真値を返し、そうでなければ偽値を返す必要があります。この関数は以下の引数で呼び出されます。

element

現在処理されている型付き配列の要素です。

index

現在処理されている型付き配列の要素のインデックスです。

array

findLastIndex() が実行されている型付き配列です。

thisArg 省略可

callbackFn を実行する際に this として使用する値。反復処理メソッドを参照してください。

返値

テストに合格した要素のうち、配列の最後(最も大きなインデックス)の要素のインデックス。 一致する要素が見つからなかった場合に -1 を返します。

解説

詳細については、 Array.prototype.findLastIndex() をご覧ください。このメソッドは汎用的ではなく、型付き配列インスタンスに対してのみ呼び出すことができます。

型付き配列から素数のインデックスを探す

以下の例では、配列の中で素数である最後の要素のインデックスを探します。素数がない場合は -1 を返します。

js
function isPrime(element) {
  if (element % 2 === 0 || element < 2) {
    return false;
  }
  for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
    if (element % factor === 0) {
      return false;
    }
  }
  return true;
}

let uint8 = new Uint8Array([4, 6, 8, 12]);
console.log(uint8.findLastIndex(isPrime));
// -1 (配列に素数がない)
uint8 = new Uint8Array([4, 5, 7, 8, 9, 11, 12]);
console.log(uint8.findLastIndex(isPrime));
// 5

仕様書

Specification
ECMAScript Language Specification
# sec-%typedarray%.prototype.findlastindex

ブラウザーの互換性

BCD tables only load in the browser

関連情報