もっと簡単な書き方はありif(gender == 'm' || gender == 'f')
ますか?
と書くのが理想的ですif(gender == ('m' || 'f'))
が、これはうまくいきません。これを JS または jQuery で記述する最良の方法は何ですか?
もっと簡単な書き方はありif(gender == 'm' || gender == 'f')
ますか?
と書くのが理想的ですif(gender == ('m' || 'f'))
が、これはうまくいきません。これを JS または jQuery で記述する最良の方法は何ですか?
最良の方法は?あなたが持っている方法で行ってください。どのくらい簡単にできますか?
if(gender == 'm' || gender == 'f')
それ以外のものは、理解を難しくするだけです。
ただし、雌雄同体/トランスジェンダーを許可するには、@kamituel を使用してください :)
本当に必要な場合は、次のように記述できます。
if ("mf".indexOf(gender) >= 0) { ...
しかし、短いですが、読みやすいとは思いません。また、gender
===で壊れますmf
(または、コメントで示唆されているように、実際に必要なものかもしれません)。
編集:また、次を使用することもできます:
if(gender === 'm' || gender === 'f')
それ以外の
if(gender == 'm' || gender == 'f')
理由はこちらの記事をご覧ください。
すでに持っているコードに問題はありません。
ただし、より短いコードや、変数名を 2 回繰り返さないコードを求める欲求を満たすには、次のようにします。
オプション 1:ステートメントswitch
。
switch(gender) {
case 'm' : ....
case 'f' : ....
}
break
(ただし、ステートメントを忘れないでください)
オプション 2:配列または文字列のマッピング:
var possibleGenders = ['m','f']; //or just = "mf", and use indexOf on the string, since we're dealing with a single char
if(possibleGenders.indexOf(gender) >=0) { .... }
オプション 3:正規表現 (これはやらないでください):
if(gender.match(/^[mf]$/)) { .... }
オプション 4: 'm' や 'f' ではなくブール値を使用します。
したがって、変数を使用するのではなく、gender
変数を使用して、またはisMale
に設定します。これにより、このステートメントなど、他の場所で必要なコードの量が削減されます。true
false
if()
if (~"mf".indexOf(gender)) {
// true
}
ただし、仲間の開発者を嫌ったり、嫌われたくない場合を除き、これを行うべきではありません。
if (['m','f'].indexOf(gender) >= 0) {
}
if(gender == 'm' || gender == 'f')
これは簡単だと思います。重要なことは、単純なコードだけを書くのではなく、理解しやすいように単純なコードを書くことです。