JavaScriptで、複数の値のいずれかにマッチする時の条件式を書く方法はいくつかあるが、その中でも一番シンプルな書き方を見つけたので紹介する。

その前に、あまり好ましくない例をいくつか見ていこう。

良くない例

まず、単純にif文でOR条件をつなげて書くパターン。

if(x === 'hoge' || x === 'fuga' || x === 'piyo'){ 
  // code...
}

芸の無い記法で、条件が多くなるにつれ可読性・保守性が悪くなる。

次に、正規表現を使った書き方。

if(x.match(/(hoge|fuga|piyo)/){ 
  // code...
}

先程のコードよりスッキリしたが、こちらも条件が増えてくると可読性が悪くなる。

条件を配列化して保守性を高める

色々探す中で最終的にたどり着いたのが、こちらのコード。

var conds = ['hoge', 'huga', 'piyo']; 

if(conds.includes(x)){ 
  // code... 
}

まず、条件を配列にまとめておく。

その配列に対し、includes関数を使ってxが配列内に存在するかのチェックをおこなう。

条件を配列化することで、後の編集もしやすくなり、コードの可読性・保守性を高めることができる。