对象中的对象使用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”未定义。非常感谢您花时间向我解释这一点。这太棒了。我有一个概念和句法上的问题,你解决了它们。谢谢你,先生!绝对是天才谢谢你花时间给我解释。这太棒了。我有一个概念和句法上的问题,你解决了它们。谢谢你,先生!