对象中的对象使用JavaScript添加属性

Object within object add property with JavaScript

本文关键字:对象 添加 属性 JavaScript      更新时间:2023-09-26

我在一个对象中有一个对象。它看起来像这样。

 var myLib = {
     object1: {}
 }

我的基本问题是我想以这样的结局结束。所以我想动态地这样做,直到运行时我才知道属性或其他对象。

var myLib = {
    object1: ({"A1":({"Color":"Blue",
                      "height":50})
    })
}

阅读Stack上的此处;溢出我知道我可以在对象中创建一个对象,只需执行以下操作:

  myLib.Object1["A1"] = "Something"

但这并不能产生我想要的东西。

我尝试了这种语法,我知道这是错误的,但基本上是

 mylib.Object1["A1"].["color"]="Blue";

所以问题就在这里。我想在"mylib.object"下创建对象"A1",并立即将属性color="blue"添加到"A1"中。我需要为其他几个属性做这件事,但如果我能为其中一个属性找到方法,我就能为其他属性找到方法。我该如何完成这项任务?

请不要jQuery。我想要的只是普通的旧JavaScript。**

一旦我创建了对象和属性,我想我可以使用for循环来循环该对象的属性。像这样:

for(key in mylib.Object1["A1"]){}

对吧?

您可以像这样从头开始创建:

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标识符规则时使用(如以数字开头)。