JavaScriptのlastIndexOf()
メソッドは、配列内で特定の要素を逆方向(末尾から先頭)に検索し、その最後のインデックスを返すための便利なメソッドです。このメソッドを使用すると、配列内で特定の要素の最後に出現する位置を簡単に特定することができます。本記事では、lastIndexOf()
メソッドの基本的な使い方から応用例まで詳しく解説します。
目次
ArrayクラスのlastIndexOf()メソッドの基本構文
lastIndexOf()
メソッドの基本的な構文は以下の通りです:
array.lastIndexOf(searchElement, fromIndex);
searchElement
: 検索する要素。fromIndex
(オプション): 検索を開始するインデックス。デフォルトは配列の末尾です。
lastIndexOf()
メソッドは、検索要素が最後に見つかった位置のインデックスを返します。見つからなかった場合は-1
を返します。
ArrayクラスのlastIndexOf()メソッドの基本的な使い方
要素の最後のインデックスを取得
const array = [1, 2, 3, 4, 3, 5];
const index = array.lastIndexOf(3);
console.log(index); // 出力: 4
この例では、要素3
の最後のインデックスを取得しています。
要素が存在しない場合
const array = [1, 2, 3, 4, 5];
const index = array.lastIndexOf(6);
console.log(index); // 出力: -1
この例では、要素6
が配列に存在しないため、-1
が返されます。
開始インデックスを指定する
const array = [1, 2, 3, 4, 3, 5];
const index = array.lastIndexOf(3, 3);
console.log(index); // 出力: 2
この例では、インデックス3
から逆方向に検索を開始し、要素3
の最後のインデックスを取得しています。
ArrayクラスのlastIndexOf()メソッドの応用例
配列内で特定の要素の全インデックスを逆方向に検索する
配列内に同じ要素が複数存在する場合、lastIndexOf()
メソッドを使用してすべてのインデックスを逆方向に検索することができます。
const array = [1, 2, 3, 4, 3, 5, 3];
const searchElement = 3;
let indices = [];
let idx = array.lastIndexOf(searchElement);
while (idx != -1) {
indices.push(idx);
idx = array.lastIndexOf(searchElement, idx - 1);
}
console.log(indices); // 出力: [6, 4, 2]
この例では、要素3
が存在するすべてのインデックスを逆方向に取得しています。
配列内で特定の要素が存在するか確認する
lastIndexOf()
メソッドを使用して配列内で特定の要素が存在するかどうかを確認することができます。
const array = ['apple', 'banana', 'cherry'];
const isExist = array.lastIndexOf('banana') !== -1;
console.log(isExist); // 出力: true
この例では、要素banana
が配列内に存在するかどうかを確認しています。
ArrayクラスのlastIndexOf()メソッドの注意点
lastIndexOf()
メソッドは、厳密等価演算子(===
)を使用して要素を比較します。そのため、異なる型の要素は一致しません。- 配列内の
NaN
を検索する場合、lastIndexOf()
メソッドは正しく動作しません。これはNaN
がNaN
と等しくないためです。
const array = [NaN, 1, 2];
console.log(array.lastIndexOf(NaN)); // 出力: -1
まとめ
lastIndexOf()
メソッドは、配列内で特定の要素を逆方向に検索し、その最後のインデックスを取得するための便利なツールです。この記事を参考にして、lastIndexOf()
メソッドを効果的に活用してください。