65

JavaScriptでこのようなことをすることは可能ですか?

max = (max < b) ? b;

つまり、条件が真の場合にのみ値を割り当てます。条件がfalseの場合、何もしません(割り当てなし)。これは可能ですか?

4

11 に答える 11

114

三項演算子は使用しないでください。3 番目の引数が必要です。変更したくない場合は、に再割り当てmaxする必要があります ( )。maxmax = (max < b) ? b : max

if 文はより明確です。

if (max < b) max = b;

そして、それを式にする必要がある場合は、 ANDの短絡評価を (ab) 使用できます。

(max < b) && (max = b)

ところで、変数名 (または式?) の繰り返しを避けたい場合は、maximum 関数を使用できます。

max = Math.max(max, b);
于 2013-02-21T18:07:12.213 に答える
16

三項演算子を含む式には、両方の値、つまり true と false の両方の値が必要です。

ただし、できます

max = (max < b) ? b : max;

この場合、条件が false の場合、 の値はmax変更されません。

于 2013-02-21T18:04:29.093 に答える
9

max条件が false の場合は、それ自体に設定できます。

max = (max < b) ? b : max;

&&または、演算子を使用して試すことができます。

(max < b) && (max = b);

または、コードをシンプルに保つには、if.

if(max < v) max = b;
于 2013-02-21T18:04:21.867 に答える
4

三項演算子以外の特定の演算子はありませんが、次のように使用できます。

max = (max < b) ? b : max;
于 2013-02-21T18:03:34.913 に答える
2

次のようなことができます。

(max < b) ? max = b : ''
于 2019-11-22T12:04:13.317 に答える
1

三項演算子は、少なくとも 2 つの可能な結果がある場合に使用されます。

let no = 10;
let max = 20;

max = no > max ? no : max

if のみを使用し、else を使用したくない場合は、if not 三項演算子を使用することをお勧めします。

let no = 10;
let max = 20;
    
if (no > max){
   max = no
}

三項演算子を使用したいが、else 部分を使用したくない場合は、これを使用できますが、すべての問題で役立つわけではありません。

let no = 10;
let max = 20;

no > max ? max = no : 0

ここでは、条件が true の場合にのみ max 変数に値を割り当てています。それ以外の場合は何もしていません。

于 2022-01-12T05:39:57.580 に答える