「自分だけが宙を泳いで通学する夢」をよく見ていました

IT系辞めて今は営業職。オタクも辞めた?いま何者なんだ俺は...

【JavaScript】文字列が含まれているか否かの処理の分岐

業務でよく見る

 

if( str.indexOf(word) != -1){

    [ 処理 ]

}

 

「検索ワードが含まれていなければ-1以外が返されるんだろうなぁ」

程度に直感的に考えていたので正確に理解したい。

順を追ってみて行こう。

 

(1) indexOf()

文字列の検索を行うStringオブジェクト。

indexを返却する。

 

例.

f:id:ga9chang:20170514214153p:plain

検索して見つからなかった場合、最後のindex -1が返却される。

 

(2) if( str.indexOf(word) != -1){ };

上記の例より、検索ワードが見つからなかった場合-1が返却される。

つまり、見つかった場合は-1以外が返却されるので、文字列を含むかの検索に用いられる。

*1

 

駅の名前JSONデータから「松戸」で検索かけて、

「東松戸」、「新松戸」、「松戸」、「北松戸」を返す。

これに近い使い方を業務では見かけます。

 

うーん...

あんまりわかっていないけど業務では困らないって例はまだまだあるので、一つずつ解決していきたいなぁ...

*1: 追記: includes()でよくね...