JavaScript - 配列の要素を検索する: indexOf()

配列の要素を検索する: indexOf()

indexOf() メソッドは、引数と同じ内容の最初の配列要素のインデックスを返します。存在しない場合は -1 を返します。indexOf の構文は以下のとおりです。

arr.indexOf(searchElement[, fromIndex])
indexOf() メソッド
searchElement
検索する配列要素です。
fromIndex
検索の開始位置です。配列の長さ以上の値が指定された場合は -1 が返され、検索されません。負数の値が指定された場合、末尾から数えた開始位置になります。指定された値が 0 であれば、配列全体が検索されます。(既定値) このパラメータは、オプションであるため省略可能です。

indexOf の返り値は、見つかった配列要素の最初のインデックスです。見つからなかった場合は -1 を返します。また indexOf は、要素が見つかった時点で検索を中止します。

var array = [2, 9, 9];
array.indexOf(9);     // 1
array.indexOf(7);     // -1
indexOf() メソッド

ある要素の存在をすべて見つけるためには、以下のように記述します。

var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.indexOf(element);
while (idx != -1) {
  indices.push(idx);
  idx = array.indexOf(element, idx + 1);
}
console.log(indices); // [0, 2, 4]
indexOf() メソッド