😄

特定のキー名のときだけ処理を行わないというコード

2024/06/21に公開

特定のキー名のときだけ処理を行わないというコードの書き方

複数の条件式に当てはまる場合のみ、処理を行うというコードはよくあると思います

例えば、URLが//posts/about/settingのときだけ処理を行う場合、以下のように書いてしまうと、条件部分がとても長くなってしまいます。

if(router.pathname === "/" || router.pathname === "/posts" || router.pathname === "/about" || router.pathname === "/setting") {
  // 処理を実行
}

しかし、array.someを使うと、コードがすっきりするのでおすすめだと思ったのでメモ。
someメソッドは少なくとも一つの要素が一致する場合はtrue、しない場合はfalseを返し、配列は変更されない。

似たようなのでarray.everyメソッドがあるが、これはすべて一致する場合のみ、trueを返す

const keys = ["/", "/demo", "/privacy", "/terms"];

const isMatch = (targetKey: string) => keys.some((v) => v === target);

if(isMatch) {
  // 処理
}

またincludesでも同じような処理できそう

const keys = ["/", "/demo", "/privacy", "/terms"];

if(keys.includes(key)) {
  // 処理
}

参考

最後に

間違っていること、この書き方のほうがより処理が早くなるなどあればコメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion