JavaScriptで配列の末尾から検索し、指定した要素が最初に出現する位置(インデックス)を取得するlastIndexOf
メソッドについて書いています。
lastIndexOf
メソッドを使うと、配列内に同じ要素が複数存在する場合に、最後に現れる要素の位置を効率的に見つけることができます。
実際に動くサンプルを使って、以下の操作を解説します。
・`lastIndexOf`メソッドで開始位置を指定する
lastIndexOfメソッドの基本的な使い方
lastIndexOf
メソッドは、配列の末尾から検索し、指定した要素が最初に出現するインデックスを返します。
基本的な構文は以下のとおりです。
array.lastIndexOf(searchElement[, fromIndex])
searchElement
: 検索する要素(必須)。fromIndex
: 検索を開始するインデックス(省略可能)。
配列から要素を検索する
配列から指定した数値を検索してみます。
const numbers = [1, 2, 3, 4, 2, 5];
const lastIndexOf2 = numbers.lastIndexOf(2);
console.log(lastIndexOf2); // 結果:4
numbers
配列を作って、次の行でlastIndexOf
メソッドを呼び出しています。
lastIndexOf
メソッドには「2」を渡しています、これでnumbers
配列の末尾から「2」を検索します。
「2」はインデックス「1」と「4」に存在しますが、lastIndexOf
は最後に現れる要素のインデックスを返すため、「4」が返されます。
要素が見つからない場合
指定した要素が見つからない場合、lastIndexOf
メソッドは「-1」を返します。
const numbers = [1, 2, 3, 4, 2, 5];
const lastIndexOf6 = numbers.lastIndexOf(6);
console.log(lastIndexOf6); // 結果:-1
numbers
配列にたいして、存在しない要素の「6」を探しています。
numbers
配列に「6」は存在しないため、-1
が返されます。
lastIndexOfメソッドで開始位置を指定する
lastIndexOf
メソッドの第2引数は、検索を開始するインデックスを指定します。
これを指定することで、配列の特定の部分だけを検索できます。
const numbers = [1, 2, 3, 4, 2, 5];
const lastIndexOf2From3 = numbers.lastIndexOf(2, 3);
console.log(lastIndexOf2From3); // 結果:1
numbers
配列のインデックス「3」から先頭に向かって「2」を検索しています。
3番目の位置の「4」から先頭の「1」に向かって検索されます。
そうすると、「2」はインデックス「1」に存在するため、「1」が返されます。
lastIndexOfで文字列を検索する
lastIndexOf
メソッドを、配列の文字列に使ったサンプルコードです。
const fruits = ['apple', 'banana', 'orange', 'apple'];
const lastIndexOfApple = fruits.lastIndexOf('apple');
console.log(lastIndexOfApple); // 結果:3
fruits
配列の末尾から’apple’を検索しています。
‘apple’はインデックス「0」と「3」に存在しますが、lastIndexOf
は最後に現れる要素のインデックスを返すため「3」が返されます。
JavaScriptのlastIndexOfメソッドの使い方まとめ
今回はJavaScriptのlastIndexOf
メソッドの使い方について解説しました。
記事の内容をまとめます。
・`fromIndex`は検索を開始するインデックス(省略可能)。
・要素が見つからない場合は`-1`を返す。
コメント