💭

【javascript】特定の要素が含まれているか判定する

2022/08/21に公開

はじめに

ある変数が、複数の値のどれかに存在するかどうかを判定したい時、何も知らず今までずっと以下のように記載していた。

if(testStr == "a" || testStr == "b" || testStr == "c" || ... ){
    ...
}

条件が数えられるほどの数ならこれでもよいが、これが10を超えてきたあたりから正直書くのがだるくなってくる。(またはコードが汚くなってくる)
そこで、このような状況下でコンパクトにコードが書ける方法があることを知ったので、メモ。

内容

includes()メソッドを使用する。

使用例
let okList = ["a", "b", "c", ... ];
if(okList.includes(testStr)){
    ...
}

詳細

条件として認められる要素を配列にし、それに対してincludes()で特定の要素が含まれているか検索する。この時、includes()に引数として渡すのは検索対象となる値であり、検索対象となる配列ではないことに注意。

// これは間違い
testStr.includes(okList);
// これが正解
okList.includes(testStr);

ちなみに、文字列に対しても有効で、その場合は以下のように記載する。

okString = "abcdefg";
okString.includes(testString);

Discussion