こんにちは、さち です。
JavaScript で「いずれかの値に一致」するかを調べたいとき、「値」の数が多いと ===
を使った書き方は冗長に感じます。
シンプルで簡略な書き方を勉強してみます。
「===」は冗長に感じる
function getBool(member) { let bool = (member === 'kozue' || member === 'kaho' || member === 'ginko'); return bool; } console.log( getBool('kozue') ); // true console.log( getBool('megumi') );// false
「値」が一致しているかの判別には ===
を使う方法が一般的です。
ただ、上記の例のように、判別したい「値」の数だけ member
も書かないといけません。記述は分かりやすいですが、長くなってしまうのが難点……。
もっとシンプルに書きたいです。
「includes」でシンプルに!
function getBool(member) {
let bool = ['kozue', 'kaho', 'ginko'].includes(member);
return bool;
}
console.log( getBool('kozue') ); // true
console.log( getBool('megumi') );// false
この方法なら member
は一度書くだけ。見た目もシンプル。
includes()
は「含む」という意味なので、何をしているのかも分かりやすいです。
動作の仕組み
「配列」で使える includes()
メソッドは、指定した「値」が「配列」の中に存在するかを true
false
で返します。
つまり、一致するか調べたい「値」をすべて「配列」に入れておけば、「いずれかの値に一致」と同じ動作をします。
今回の例の場合、member
の「値」が 'kozue'
'kaho'
'ginko'
のいずれかに一致するかを判別できるわけです。
各ブラウザーの対応
includes()
メソッドは、結構古いバージョンのブラウザーでも対応しているので、使用しても問題ないと思います。
各ブラウザーの対応の詳細は下記リンク先ページを参照できます。
Array.prototype.includes | Can I use... Support tables for HTML5, CSS3, etc
"Can I use" provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile w
コメント