我有一个对象..
var $itemConfig;
//...
//code
//...
$itemConfig =
{
'$prop1' : $value1,
'$prop2' : $value2,
};
然后我需要在循环内添加一个对象。
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 :(得分: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
}
答案 1 :(得分:0)
如果您不想更改分配给$itemConfig
的值,只需不要在其上调用赋值运算符。
相反,使用点或括号表示法将新成员分配给父对象:
$itemConfig.$oneMoreObj = { $var1: $var2 };
$itemConfig["$oneMoreObj"] = { $var1: $var2 };
答案 2 :(得分:0)
在for循环中,使用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 } );
};