indexOfメソッド

メソッド indexOf は、配列内の要素を検索します。 最初のパラメータで検索する要素を指定します。 このメソッドは最初に見つかった要素のインデックスを返します。 要素が見つからない場合は -1 を返します。 2番目のオプションパラメータは、 検索を開始する位置を指定します。

構文

javascript配列.indexOf(要素, [開始位置]);

例

配列内で最初の3の位置を見つけてみましょう:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

コード実行結果:

javascript2

例

今度は、配列内に検索する要素が存在しない場合です:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

コード実行結果:

javascript-1

例

指定した位置から検索を開始します:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

コード実行結果:

javascript5

よくある間違い

配列内に要素が存在するかどうかをチェックするために このメソッドを使うことがあります。 この場合、以下のようにチェックすると 間違いを犯しやすくなります:

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

このチェックは、インデックス0以外のすべての位置では 機能します - なぜなら、0は false と解釈されるからです。

要素の存在を正しくチェックする方法は以下の通りです:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

関連項目

  • メソッド includes,
    配列内の要素の存在をチェックします
  • メソッド lastIndexOf,
    末尾から要素を検索します
  • メソッド at,
    インデックスを指定して配列の要素を返します
  • メソッド match,
    文字列内で一致するものを検索します
  • メソッド search,
    検索を実行します