2017-01-08 6 views
0

私はオブジェクトにオブジェクトを追加するには? JS

var $itemConfig; 

//... 
//code 
//... 

$itemConfig = 
{ 
    '$prop1' : $value1, 
    '$prop2' : $value2, 
}; 

が、私はループ内で1つの以上のオブジェクトを追加する必要があります。..オブジェクトを持っています。

for (var o = 0; o < 3; o++) 
{ 
    $itemConfig = {  $oneMoreObj: { [$var1 + o]: $var2 }  }; 
    // how i can do it? 
    // it should not be replacement.. it should be adding 
} 

あなたのポストは、ほとんどのコードであるように見えます。詳細を追加してください。 ...

+0

の割り当てを、 '$ itemConfig [ '<呼び出したいものを1つ以上OBJ>'] = $ oneMoreObj;' –

+0

小道具名前は一意である必要がありますので、あなたは[$ itemConfig '行うことができますループ内で '$ prop' + o] = {...} '... – BrunoLM

+0

@sameuser以下の回答を試してください – akinjide

答えて

0

あなたのVARの特殊文字を使用する場合は、あなたが使用する必要があります($は実際のvar名に受け入れられている)

$itemConfig['$newprop'] = { }; // new object 

// without special chars you could do 
// itemConfig.newprop = { }; 

var pen = { 
 
    '$prop1': 1, 
 
    '$prop2': 2, 
 
}; 
 

 
var apple = { 
 
    taste: 'awesome', 
 
}; 
 

 
// uuuhg 
 
pen['$apple'] = apple; 
 

 
console.log(pen);

ループの内部を追加する方法については、私が提案した通りに行うことができます

for (var o = 0; o < 3; o++) 
{ 
    $itemConfig['$propAdded' + o] = {  $oneMoreObj: { [$var1 + o]: $var2 }  }; 
    // $propAdded0 
    // $propAdded1 
    // ... it has to be a unique key name 
} 
+0

これはループ内のオブジェクトに追加する問題を解決しません – akinjide

0

$itemConfigに割り当てられた値を変更しない場合は、代入演算子を呼び出さないでください。代わりに

、親オブジェクトに新しいメンバーを割り当てるために、ドットやブラケット表記を使用します。あなたのforループ内

$itemConfig.$oneMoreObj = { $var1: $var2 }; 

$itemConfig["$oneMoreObj"] = { $var1: $var2 }; 
0

Object.assignを使用しています。 Objectの古いプロパティを保持し、新しいプロパティを追加します。キーによる

var $itemConfig; 

//... 
//code 
//... 

$itemConfig = { 
    '$prop1' : '$value1', 
    '$prop2' : '$value2' 
}; 

for (var o = 0; o < 3; o++) { 
    Object.assign($itemConfig, { ['$newvar' + o]: '$newvalue' + o }); 
}; 
関連する問題