Javascriptで配列の要素の存在チェックはindexOfで可能。注意点があるよ

if文でのチェック方法

サッと書いてしまうと↓のような感じです。

var arrayMonth = [ '1月', '2月', '3月', '4月' ];if(arrayMonth.indexOf('1月') >= 0){    // 存在する}else{    // 存在しない}

注意点

indexOfは型も見ます!

僕自身、if文が意図通りに動作しなくてなんでだろーって少し苦戦したことがあります。

↓は悪い例です。if文のtrueに入ってくれません。

/*** これは悪い例です*/ var arrayMonth = [ '1', '2', '3', '4' ];if(arrayMonth.indexOf(1) >= 0){    // 存在する}else{    // 存在しない}

正解:型変換を使ってindexOfを使おう

/*** 型を指定して判定しよう*/ var arrayMonth = [ '1', '2', '3', '4' ];// 文字列にするif(arrayMonth.indexOf(String(1)) >= 0){    // 存在する}else{    // 存在しない}// もしくはvar arrayMonthNum = [ 1, 2, 3, 4 ];// 数値にするにはNumberやparseInt等if(arrayMonthNum.indexOf(Number('1')) >= 0){    // 存在する}else{    // 存在しない}

以上です。良いJavascriptライフを!

コメント