13

次のことを達成するためのより簡潔でエレガントな方法を知っている人はいますか?

A = B if B?

ありがとう。

編集:

A と B を一度だけ参照するソリューションを探しています。そして、コンパイルする
if (typeof B !== "undefined" && B !== null) { A = B; }
か、似たようなものになります。

これを短くすると、次の文がもう少し読みやすくなります。
someObject[someAttribute] = (someOtherObject[someOtherAttribute] if someOtherObject[someOtherAttribute]?)
それが私の質問の動機です。

4

3 に答える 3

20

あなたは言えた:

a = b ? a

たとえば、これは次のとおりです。

a = 11
a = b ? a
console.log(a)
b = 23
a = b ? a
console.log(a)​

あなた1123コンソールに表示されます(デモ:http://jsfiddle.net/ambiguous/ngtEE/

于 2012-06-16T02:52:52.160 に答える
3

たぶん次のようなものです:

A=_ if (_=B)?

拡張:

if ((_ = B) != null) {
  A = _;
}

これは、B にあるもので A を上書きしますが、それが null でない場合に限り、両方を 1 回だけ参照します。

于 2014-11-23T18:30:56.493 に答える
2

Coffee Script についてはわかりませんが、次のように通常の JavaScript で OR 演算子を使用できます。

a = b || a

于 2016-06-14T06:33:38.830 に答える