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ライフを!
コメント