開発では、文字列を複数の文字列値と比較する必要がよくあります。直感的な反応は、次のように、|| 記号を使用して複数の === 補完を接続することです。
if (string === 'banana' || string === 'pineapple') {
fruitColor = ' yellow' >}
これは非常に簡単です。ニーズを満たすのには適していますが、フルーツの種類が増えると、常に少し不器用で拡張には不向きに感じます:
if (string === 'banana' || string === 'pineapple' || string === 'mongo' || string === 'lemon') {
fruitColor = ' yellow';
}
上記のコードはあまり良くないようです。この要件を処理する他の方法があります。
スイッチ
switch( string) {
case 'banana':
case 'pineapple':
case 'mongo':
case 'lemon':
fruitColor = ' yellow'; }
これは良さそうですが、常に多くの入力が必要になるため、あまり入力したくない人にとっては良い方法ではありません。
配列
if ( ['バナナ', 'パイナップル', 'モンゴ', 'レモン'].indexOf(string) >= 0) {
フルーツカラー = '黄色' >}
;
これはかなり改善されましたが、IE
jQuery
jQuery は inArray メソッドを提供します
コードをコピーします
コードは次のとおりです。 if ($.inArray(['バナナ', 'パイナップル', 'モンゴ', 'レモン'], string) >= 0) {
フルーツカラー = '黄色';
}
アンダースコア
アンダースコアは、contains メソッドを提供します
コードをコピー
コードは次のとおりです: if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) {
FruitColor = ' yellow ';
}
正規表現
もちろん、最終兵器である正規表現もあります
コードをコピーします
コードは次のとおりです: if (/^(banana|pineapple|mongo|lemon)$/.test (文字列)) {
fruitColor = '黄色'
}
;