【JavaScript】ArrayクラスのindexOf()メソッドについて

JavaScriptのindexOf()メソッドは、配列内で特定の要素を検索し、その最初のインデックスを返すための便利なメソッドです。このメソッドを使用すると、配列内の要素の位置を簡単に特定することができます。本記事では、indexOf()メソッドの基本的な使い方から応用例まで詳しく解説します。

目次

ArrayクラスのindexOf()メソッドの基本構文

indexOf()メソッドの基本的な構文は以下の通りです:

array.indexOf(searchElement, fromIndex);
  • searchElement: 検索する要素。
  • fromIndex (オプション): 検索を開始するインデックス。デフォルトは0です。

indexOf()メソッドは、検索要素が最初に見つかった位置のインデックスを返します。見つからなかった場合は-1を返します。

ArrayクラスのindexOf()メソッドの基本的な使い方

要素のインデックスを取得

const array = [1, 2, 3, 4, 5];

const index = array.indexOf(3);

console.log(index); // 出力: 2

この例では、要素3のインデックスを取得しています。

要素が存在しない場合

const array = [1, 2, 3, 4, 5];

const index = array.indexOf(6);

console.log(index); // 出力: -1

この例では、要素6が配列に存在しないため、-1が返されます。

開始インデックスを指定する

const array = [1, 2, 3, 4, 3, 5];

const index = array.indexOf(3, 3);

console.log(index); // 出力: 4

この例では、インデックス3から検索を開始し、要素3のインデックスを取得しています。

ArrayクラスのindexOf()メソッドの応用例

配列内で複数の同じ要素を検索する

配列内に同じ要素が複数存在する場合、indexOf()メソッドを使用してすべてのインデックスを取得することができます。

const array = [1, 2, 3, 4, 3, 5, 3];
const searchElement = 3;
let indices = [];
let idx = array.indexOf(searchElement);

while (idx != -1) {
  indices.push(idx);
  idx = array.indexOf(searchElement, idx + 1);
}

console.log(indices); // 出力: [2, 4, 6]

この例では、要素3が存在するすべてのインデックスを取得しています。

配列内で特定の要素が存在するか確認する

indexOf()メソッドを使用して配列内で特定の要素が存在するかどうかを確認することができます。

const array = ['apple', 'banana', 'cherry'];

const isExist = array.indexOf('banana') !== -1;

console.log(isExist); // 出力: true

この例では、要素bananaが配列内に存在するかどうかを確認しています。

ArrayクラスのindexOf()メソッドの注意点

  • indexOf()メソッドは、厳密等価演算子(===)を使用して要素を比較します。そのため、異なる型の要素は一致しません。
  • 配列内のNaNを検索する場合、indexOf()メソッドは正しく動作しません。これはNaNNaNと等しくないためです。
javascriptコードをコピーするconst array = [NaN, 1, 2];

console.log(array.indexOf(NaN)); // 出力: -1

まとめ

indexOf()メソッドは、配列内で特定の要素を検索し、その最初のインデックスを取得するための便利なツールです。この記事を参考にして、indexOf()メソッドを効果的に活用してください。

目次