1. ホーム
  2. javascript

[解決済み] JavaScriptで、オブジェクトに条件付きでメンバーを追加する方法は?

2022-03-14 22:38:34

質問

条件付きでメンバーを追加したオブジェクトを作りたいのですが、どうすればいいですか? 簡単な方法としては

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

解決方法は?

純粋なJavascriptでは、あなたの最初のコードスニペット以上にイディオムなものは考えられません。

しかし、jQuery ライブラリを使うことが問題でなければ $.extend() は、ドキュメントに書かれているように、要件を満たしているはずです。

未定義のプロパティはコピーされません。

したがって、書くことができます。

var a = $.extend({}, {
    b: conditionB ? 5 : undefined,
    c: conditionC ? 5 : undefined,
    // and so on...
});

そして、期待する結果を得る(もし conditionBfalse であれば b には存在しません。 a ).