指定の値と一致する配列の要素を検索する

広告

配列に対して指定した値と同じ値を格納している要素を検索し、要素のインデックスを取得することができます。ここでは JavaScript で指定の値と一致する配列の要素を検索する方法について解説します。

配列の先頭から検索する(indexOfメソッド)

Array オブジェクトの indexOf メソッドを使うと指定した値を持つ要素を配列の先頭から検索することができます。書式は次の通りです。

配列名.indexOf(値)
配列名.indexOf(値, 開始インデックス)

引数に指定した値を持つ要素を配列の先頭から順に検索し、一致したものが見つかった場合はそのインデックスを返します。見つからなかった場合は -1 が返されます。一致するかどうかは === 演算子を使って行われます。

次のサンプルをみてください。

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.indexOf('Sat');
console.log(indexSat);
--> 1

let indexTue = week.indexOf('Tue');
console.log(indexTue);
--> -1

配列の先頭から検索する(indexOfメソッド)(1)

indexOf メソッドは配列の先頭から要素を検索していきます。引数に指定した値と一致する要素が複数あった場合、先頭から検索して最初に見つかった要素のインデックスを返します。

省略可能な二番目の引数で検索を開始するインデックスを指定することができます。次のサンプルをみてください。

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.indexOf('Sat', 2);
console.log(indexSat);
--> 3

配列の先頭から検索する(indexOfメソッド)(2)

引数に指定した値はインデックス 1 の要素に格納されていますが、検索の開始位置にインデックス 2 を指定したのでインデックス 2 以降の要素で引数に指定した値を格納している要素のインデックスが返されました。

配列の最後から検索する(lastIndexOfメソッド)

Array オブジェクトの lastIndexOf メソッドを使うと指定した値を持つ要素を配列の最後から検索することができます。書式は次の通りです。

配列名.lastIndexOf(値)
配列名.lastIndexOf(値, 開始インデックス)

引数に指定した値を持つ要素を配列の最後から順に検索し、一致したものが見つかった場合はそのインデックスを返します。見つからなかった場合は -1 が返されます。一致するかどうかは === 演算子を使って行われます。

次のサンプルをみてください。

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.lastIndexOf('Sat');
console.log(indexSat);
--> 3

let indexTue = week.lastIndexOf('Tue');
console.log(indexTue);
--> -1

配列の最後から検索する(lastIndexOfメソッド)(1)

lastIndexOf メソッドは配列の最後から要素を検索していきます。引数に指定した値と一致する要素が複数あった場合、最後から検索して最初に見つかった要素のインデックスを返します。

省略可能な二番目の引数で検索を開始するインデックスを指定することができます。次のサンプルをみてください。

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.lastIndexOf('Sat', 2);
console.log(indexSat);
--> 1

配列の最後から検索する(lastIndexOfメソッド)(2)

引数に指定した値はインデックス 3 の要素に格納されていますが、検索の開始位置にインデックス 2 を指定したのでインデックス 2 以前の要素で引数に指定した値を格納している要素のインデックスが返されました。

-- --

JavaScript で指定の値と一致する配列の要素を検索する方法について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。