inArray()メソッドとは?
jQueryのinArrayメソッドは、配列の中に特定の要素が含まれているかどうかを検索することができるメソッドです。
条件分岐に利用することで、指定の要素が含まれている時といない時とで処理を分けることが可能になります。
inArrayメソッドは次のように記述します。
inArrayの返り値
inArrayは検索した結果の返り値として、文字列が含まれていなかった時には「-1」を、含まれていた場合は対象のテキストの先頭を0として何文字目からはじまるかというインデックス番号を返します。
返り値 | |
---|---|
含まれているとき | 先頭を0としたインデックス番号 |
含まれていないとき | -1 |
次の例では果物の名前が格納された配列の中から、「いちご」と「レモン」をそれぞれ検索しています。
先頭から検索を開始し「いちご」を見つけたらインデックス番号(先頭の要素を0番目とする)を返すので、返り値は「1」になります。
配列の中に「レモン」は存在しないので「-1」を返します。
jQuery
/*検索対象の配列↓*/ var targetA = ["リンゴ","いちご","バナナ","すいか","メロン","リンゴ","いちご","みかん"]; /*含まれている場合*/ console.log($.inArray("いちご",targetA));//返り値は1 /*含まれていない場合*/ console.log($.inArray("レモン",targetA));//返り値は-1
inArrayはヒットしたら検索を終了する
上記の例で、配列内に「いちご」は2つ存在しますがinArrayはひとつヒットしたら検索を終了するため、配列内に何個存在するかというチェックはできません。
配列内で特定の要素の総数を調べたいときはeachメソッドなどと組み合わせたループをつくって処理する必要があります。
検索対象を何番目以降という形で指定する
先程の例では配列の先頭からすべてを検索対象としていましたが、次のように何番目以降から検索を開始するように指定することも可能です。
次の例では、配列の3番目以降で検索を行うため、返り値は6になります。(返り値のインデックス番号は先頭から数えたものになります。)
jQuery
/*検索対象の配列↓*/ var targetA = ["リンゴ","いちご","バナナ","すいか","メロン","リンゴ","いちご","みかん"]; /*3番目以降で検索*/ console.log($.inArray("いちご",targetA,3));//返り値は6
Javasctiptでテキストや配列内を検索できるIndexOfメソッドについてはこちらのページをご覧ください。
JavascriptのindexOfで文字列を検索する方法【lastIndexOfも】
indexOfメソッドを使用すると、テキストや配列の中に指定の文字列が含まれているかどうかを検索することができます。条件分岐に利用することで、ある文字が含まれている時といない時とで処理を分けることが可能になります...【もっと読む】
まとめ
以上がinArray()で配列内を検索するして特定の要素が含まれているかチェックする方法です。