indexOfメソッド
メソッド indexOf は、配列内の要素を検索します。
最初のパラメータで検索する要素を指定します。
このメソッドは最初に見つかった要素のインデックスを返します。
要素が見つからない場合は -1 を返します。
2番目のオプションパラメータは、
検索を開始する位置を指定します。
構文
配列.indexOf(要素, [開始位置]);
例
配列内で最初の3の位置を見つけてみましょう:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
コード実行結果:
2
例
今度は、配列内に検索する要素が存在しない場合です:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
コード実行結果:
-1
例
指定した位置から検索を開始します:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
コード実行結果:
5
よくある間違い
配列内に要素が存在するかどうかをチェックするために このメソッドを使うことがあります。 この場合、以下のようにチェックすると 間違いを犯しやすくなります:
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
このチェックは、インデックス0以外のすべての位置では
機能します - なぜなら、0は false と解釈されるからです。
要素の存在を正しくチェックする方法は以下の通りです:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
関連項目
-
メソッド
includes,
配列内の要素の存在をチェックします -
メソッド
lastIndexOf,
末尾から要素を検索します -
メソッド
at,
インデックスを指定して配列の要素を返します -
メソッド
match,
文字列内で一致するものを検索します -
メソッド
search,
検索を実行します