JavaScript で、条件に応じてオブジェクトにメンバーを追加するにはどうすればよいでしょうか? 質問する

JavaScript で、条件に応じてオブジェクトにメンバーを追加するにはどうすればよいでしょうか? 質問する

条件付きでメンバーが追加されたオブジェクトを作成したいと思います。簡単な方法は次のとおりです。

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})
}

おすすめ記事