JavaScriptのfindLastIndex・条件で最後の要素位置を取得!

JavaScriptで配列の末尾から検索し、最初の条件に一致する要素のインデックス(位置)を取得するfindLastIndexメソッドについて書いています。
findLastIndexメソッドは、テスト関数を渡して、配列を逆順に検索し、最初にtrueを返す要素のインデックスを返します。

実際に動くサンプルを使って、以下の操作を解説します。

・`findLastIndex`メソッドの基本的な使い方
・コールバック関数の引数
・`findLastIndex`メソッドを使うメリット

findLastIndexメソッドの基本的な使い方

findLastIndexメソッドは、配列の末尾から検索し、最初に条件に一致する要素のインデックスを返します。
基本的な構文は以下のとおりです。

array.findLastIndex(callback(element[, index[, array]])[, thisArg])
  • callback: 各要素に対して実行するテスト関数。
    • element: 現在処理されている要素。
    • index: 現在処理されている要素のインデックス(省略可能)。
    • array: findLastIndexが呼び出された配列(省略可能)。
  • thisArg: callback内でthisとして使用する値(省略可能)。

配列の条件に一致する最後の要素のインデックスを取得する

配列を作って、findLastIndexを使用して、条件にあうインデックスを取得してみます。

const numbers = [1, 5, 10, 15, 20, 25, 5];
const lastGreaterThan10Index = numbers.findLastIndex(element => element > 10);

console.log(lastGreaterThan10Index); // 結果:5

最初にnumbers配列を作成して、次の行でfindLastIndexを呼び出しています。

numbers配列の末尾から検索し、10より大きい要素を検索しています。
最初に条件に一致する要素は「25」です。

findLastIndexはインデックスを返すため、「25」のインデックスである「5」が返されます。

条件に一致する要素がない場合

条件に一致する要素がない場合、findLastIndexメソッドは-1を返します。

const numbers = [1, 5, 10, 15, 20];
const lastGreaterThan100Index = numbers.findLastIndex(element => element > 100);

console.log(lastGreaterThan100Index); // 結果:-1

この例では、100より大きい要素は存在しないため、-1が返されます。

コールバック関数の引数

findLastIndexメソッドに渡すコールバック関数は、3つの引数を受け取ることができます。

  • element: 現在処理されている要素。
  • index: 現在処理されている要素のインデックス。
  • array: findLastIndexが呼び出された配列。

これらの引数を使うことで、より複雑な条件で要素を検索することができます。

const numbers = [1, 5, 10, 15, 20, 25, 50];
const lastMultipleOf5Index = numbers.findLastIndex((element, index, array) => {
  return element % 5 === 0 && index < array.length - 1; // 5の倍数かつ最後の要素ではない
});

console.log(lastMultipleOf5Index); // 結果:5

この例では、5の倍数かつ最後の要素ではない要素のインデックスを検索しています。

findLastIndexのコールバック関数に条件を指定して、関数の中で、5の倍数で最後の要素でないものを判定しています。
「25」が条件に合うので、インデックスの「5」が返ってきます。

findLastIndexメソッドを使うメリット

findLastIndexメソッドを使う主なメリットは以下のとおりです。

  • 配列の末尾から効率的に検索: 配列の末尾から検索するため、条件に一致する最後の要素の位置を効率的に取得できます。
  • 柔軟な条件指定: コールバック関数を使うことで、複雑な条件を指定して要素を検索できます。
  • コードの可読性向上: forループなどを使うよりも、簡潔なコードで条件に一致する要素の位置を取得できます。

JavaScriptのfindLastIndexメソッドの使い方まとめ

今回はJavaScriptのfindLastIndexメソッドの使い方について解説しました。
記事の内容をまとめます。

・`findLastIndex`メソッドは、配列の末尾から検索し、最初に条件に一致する要素のインデックスを返す。
・コールバック関数を使って、複雑な条件を指定できる。
・条件に一致する要素がない場合は`-1`を返す。

コメント