JavaScriptで配列に値が存在するか検索する:indexOf()

JavaScriptの配列に値が存在するか検索するメソッドにindexOf()というものがあります。

indexOf()メソッドの使い方

var array = [0, 10, 4,'string'];

console.log(array.indexOf(10));  // 実行結果:1
console.log(array.indexOf('string'));  // 実行結果:4

indexOf()メソッドでは()内にある値(引数)が何番目にあるかを返すメソッドです。

3行目に書いてあるコードでは10という値が何番目にあるかを取得します。配列は0から始まるため、1という値が返ってきています。また、4行目のコードのように文字列も検索することができます。

配列に値がない場合

var array = [0, 10, 4,'string'];

console.log(array.indexOf(30));  // 実行結果:-1

もし引数の値が配列の中になかった場合は-1という値が返ってきます。これを活用すると以下のように使うこともできます。

var array = [0, 10, 4, 'string'];
if(array.indexOf(60) >= 0){
    console.log('存在します'); 
}else{
    console.log('存在しません'); 
};
// 実行結果:存在しません

array.indexOf(60)の実行結果が0以上の場合は「存在する」を返し、それ以外の実行結果の場合は「存在しない」を返すというものです。上の場合、array.indexOf(60)の実行結果は-1なので「存在しません」が返ってきています。