对象中的对象使用JavaScript添加属性
我在一个对象中有一个对象。看起来像这样对象中的对象使用JavaScript添加属性,javascript,Javascript,我在一个对象中有一个对象。看起来像这样 var myLib = { object1: {} } 我的基本问题是我想这样结束。所以我想动态地这样做,直到运行时我才知道属性或其他对象 var myLib = { object1: ({"A1":({"Color":"Blue", "height":50}) }) } 通过阅读这里的StackOverflow,我知道我可以通过如下方式在对象中创建对象: myLib.Obj
var myLib = {
object1: {}
}
我的基本问题是我想这样结束。所以我想动态地这样做,直到运行时我才知道属性或其他对象
var myLib = {
object1: ({"A1":({"Color":"Blue",
"height":50})
})
}
通过阅读这里的StackOverflow,我知道我可以通过如下方式在对象中创建对象:
myLib.Object1["A1"] = "Something"
var myLib = {};
myLib.object1 = {};
// assuming you get this value from your code somewhere
var x = "A1";
myLib.object1[x] = {Color: "Blue", height: 50};
但这并没有产生我想要的
我试过这种语法,我知道这是错误的,但基本上是错误的
mylib.Object1["A1"].["color"]="Blue";
所以基本上这就是问题所在。我想在“mylib.object”下创建对象“A1”,并立即将属性color=“blue”添加到“A1”。我需要对其他几个属性执行此操作,但如果我能够为其中一个属性执行此操作,则可以为其余属性执行此操作。我怎样才能完成这项任务
请不要用jQuery。我要找的就是简单的老JavaScript**
一旦我创建了对象和属性,我可以想象我可以使用for
循环来循环该对象的属性。像这样:
for(key in mylib.Object1["A1"]){}
对吗?您可以像这样从头开始创建:
myLib.Object1["A1"] = "Something"
var myLib = {};
myLib.object1 = {};
// assuming you get this value from your code somewhere
var x = "A1";
myLib.object1[x] = {Color: "Blue", height: 50};
或者,如果所有值都在变量中:
var myLib = {};
myLib.object1 = {};
// assuming you get this value from your code somewhere
var x = "A1";
var colorProp = "Color";
var colorPropValue = "Blue";
var heightProp = "height";
var heightPropValue = 50;
myLib.object1[x] = {}; // create empty object so we can then add properties to it
myLib.object1[x][colorProp] = colorPropValue; // add one property
myLib.object1[x][heightProp] = heightPropValue; // add another property
这些语法产生相同的结果:
myLib.object1.A1 = {};
var x = "A1";
myLib.object1[x] = {};
只有在编写代码时知道属性名称,并且属性名称遵循javascript标识符的正确规则时,才能使用第一种方法。第二个可以随时使用,但通常在属性名位于变量中或不符合javascript标识符规则(如以数字开头)时使用。您可以从头开始创建它,如下所示:
myLib.Object1["A1"] = "Something"
var myLib = {};
myLib.object1 = {};
// assuming you get this value from your code somewhere
var x = "A1";
myLib.object1[x] = {Color: "Blue", height: 50};
或者,如果所有值都在变量中:
var myLib = {};
myLib.object1 = {};
// assuming you get this value from your code somewhere
var x = "A1";
var colorProp = "Color";
var colorPropValue = "Blue";
var heightProp = "height";
var heightPropValue = 50;
myLib.object1[x] = {}; // create empty object so we can then add properties to it
myLib.object1[x][colorProp] = colorPropValue; // add one property
myLib.object1[x][heightProp] = heightPropValue; // add another property
这些语法产生相同的结果:
myLib.object1.A1 = {};
var x = "A1";
myLib.object1[x] = {};
只有在编写代码时知道属性名称,并且属性名称遵循javascript标识符的正确规则时,才能使用第一种方法。第二个可以随时使用,但通常在属性名位于变量中或不符合javascript标识符规则(如以数字开头)时使用。它是
[“A1”][“color”]=“blue”
您想要的吗?看起来是这样,但如果我尝试此操作,会出现错误myLib.Object1[“A1”[“color”]=“blue”;错误是myLib.Object1“A1”未定义。它是不是[“A1”][“color”]=“blue”
你在找什么?似乎是它,但如果我尝试此操作,我会得到一个错误myLib.Object1[“A1”][“color”]=“blue”;错误是myLib.Object1“A1”未定义。非常感谢您花时间向我解释这一点。这太棒了。我有一个概念和句法上的问题,你解决了它们。谢谢你,先生!绝对是天才谢谢你花时间给我解释。这太棒了。我有一个概念和句法上的问题,你解决了它们。谢谢你,先生!