-6

もっと簡単な書き方はありif(gender == 'm' || gender == 'f')ますか?

と書くのが理想的ですif(gender == ('m' || 'f'))が、これはうまくいきません。これを JS または jQuery で記述する最良の方法は何ですか?

4

10 に答える 10

7

最良の方法は?あなたが持っている方法で行ってください。どのくらい簡単にできますか?

if(gender == 'm' || gender == 'f')

それ以外のものは、理解を難しくするだけです。

ただし、雌雄同体/トランスジェンダーを許可するには、@kamituel を使用してください :)

于 2013-09-03T13:23:30.267 に答える
2

本当に必要な場合は、次のように記述できます。

if ("mf".indexOf(gender) >= 0) { ...

しかし、短いですが、読みやすいとは思いません。また、gender===で壊れますmf(または、コメントで示唆されているように、実際に必要なものかもしれません)。

編集:また、次を使用することもできます:

if(gender === 'm' || gender === 'f')

それ以外の

if(gender == 'm' || gender == 'f')

理由はこちらの記事をご覧ください。

于 2013-09-03T13:24:12.997 に答える
1

すでに持っているコードに問題はありません。

ただし、より短いコードや、変数名を 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に設定します。これにより、このステートメントなど、他の場所で必要なコードの量が削減されます。truefalseif()

于 2013-09-03T13:25:33.463 に答える
1
if (~"mf".indexOf(gender)) {
    // true
}

ただし、仲間の開発者を嫌ったり、嫌われたくない場合を除き、これを行うべきではありません。

于 2013-09-03T13:51:19.383 に答える
1
  if (['m','f'].indexOf(gender) >= 0) {

    }
于 2013-09-03T13:24:37.013 に答える
0
if(gender == 'm' || gender == 'f')

これは簡単だと思います。重要なことは、単純なコードだけを書くのではなく、理解しやすいように単純なコードを書くことです。

于 2013-09-03T13:28:52.073 に答える