条件付きでメンバーが追加されたオブジェクトを作成したいと思います。簡単な方法は次のとおりです。
var a = {};
if (someCondition)
a.b = 5;
さて、もっと慣用的なコードを書きたいと思います。私は次のことを試しています:
a = {
b: (someCondition? 5 : undefined)
};
しかし、現在、はb
のメンバーであり、a
その値は ですundefined
。これは望ましい結果ではありません。
便利な解決策はありますか?
アップデート
複数のメンバーがいる一般的なケースに対応できるソリューションを探しています。
a = {
b: (conditionB? 5 : undefined),
c: (conditionC? 5 : undefined),
d: (conditionD? 5 : undefined),
e: (conditionE? 5 : undefined),
f: (conditionF? 5 : undefined),
g: (conditionG? 5 : undefined),
};
ベストアンサー1
@InspiredJW は ES5 でそれをやったと思いますが、@trincot が指摘したように、es6 を使用する方がより良いアプローチです。しかし、スプレッド演算子と論理 AND 短絡評価を使用して、もう少し甘味を加えることができます。
const a = {
...(someCondition && {b: 5})
}