2

私はstackoverflowとgoogleでこのような解決策を探していましたが、これがアイデアです

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

しかし、私はこれを理解していません... nodejsでは機能しません 内部に多くのオブジェクトを持つオブジェクトを作成したいのですが、そのオブジェクトがクライアントから送信された形式である場合

4

5 に答える 5

2

多分あなたが望むことは配列インデックス表記を使用して行うことができますか?

a= {};
if(bla) a.b = "go";
于 2012-09-20T07:38:08.887 に答える
1

これは2つの方法で達成できます。

条件付きプロパティごとにif文を使用します。

    var a = {};
    if(conditionb){
      a.b = 5;
    }

または、すべてのプロパティにif文を作成したくない場合は、質問で提示した表記法を使用してプロパティを割り当て、ループ内の不要なプロパティを削除します。

    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),
    };
    for(var i in a){
      if(a[i] === undefined){
        delete a[i];
      }
    }
于 2012-09-20T07:49:59.210 に答える
1

これを試して:

var a = {};
if(conditionB) {
   a['b'] = 5;
}

また

if(conditionB) {
   a.b = 5;
}
于 2012-09-20T07:43:05.337 に答える
0

あなたはこれを試すことができます、

var dog = d;

var myObject = {};
myObject['a']=(1<2)? 1 : 2;
myObject['b']=(1<2)? 1 : 2;
myObject['c']=(1<2)? 1 : 2;
myObject[dog]=(1<2)? 1 : 2;

プロパティを動的に作成している場合に備えて。

于 2012-09-20T07:49:13.660 に答える