2017-01-04 3 views
0

に未定義出演:がこれを行うのJavaScript(ES2015)で簡潔な操作があります0

x => x === undefined ? 0 : x 

私はxをインクリメントしたい状況に実行し続けるが、それは最初は未定義ですので、コードは次のようになります。

foo.bar = (foo.bar === undefined ? 0 : foo.bar) + 1; 

または

foo.bar = (foo.bar ? foo.bar : 0) + 1; 

行うことの少ない反復方法はありますこのキャスト?

+2

'(foo.bar || 0)'を試しましたか? – Tushar

答えて

3
foo.bar = (foo.bar || 0) + 1; 

が有効です。

+0

ああ、ありがとう! –

1

undefined + 1は偽のNaNであり、undefinedは偽であるため、いくつかの選択肢があります。

あなたの数字がマイナスになることはありませんと仮定すると(具体的に-1)

foo.bar = foo.bar + 1 || 1 

またはデビッドの答えは、おそらく良いアイデアですが、これは、foo.barの任意の値で動作します。

foo.bar ? foo.bar++ : foo.bar = 1 
関連する問題