JavaScriptで配列の末尾から検索し、最初の条件に一致する要素のインデックス(位置)を取得するfindLastIndex
メソッドについて書いています。
findLastIndex
メソッドは、テスト関数を渡して、配列を逆順に検索し、最初にtrue
を返す要素のインデックスを返します。
実際に動くサンプルを使って、以下の操作を解説します。
・コールバック関数の引数
・`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
メソッドの使い方について解説しました。
記事の内容をまとめます。
・コールバック関数を使って、複雑な条件を指定できる。
・条件に一致する要素がない場合は`-1`を返す。
コメント