将子项添加到具有变量名称的JavaScript对象

时间:2017-01-23 19:32:34

标签: javascript

我们说我有一个空白的JavaScript对象:

myObject {}

我还有一个变量:

var myChildObject = this.name.split('.')[1];

为了举个例子,让我们说myChildObject等于" FooBar"。现在,我想将一个名为" FooBar"的子对象添加到myObject,只有我们不能硬编码" FooBar"。我们必须使用变量名myChildObject

我试过了:

myObject.appendChild(myChildObject);

那不起作用。

目标是:

{  
   "myObject":{  
      "FooBar":{  
         "thing1":25,
         "thing2":6
      },
      .....
}

但是我需要动态地构建整个事物,而不是提前知道名字(除根之外)。

5 个答案:

答案 0 :(得分:2)

对象是一种“键值”类型的东西,有点像Java中的Map。你尝试过这样的事情:

let myObject = {};
let myChildObject = "fooBar";
myObject[myChildObject] = {};

这样你的对象就有了一个“fooBar”键......现在你必须决定你希望该键的值是什么。

答案 1 :(得分:1)

var myObject = {};
var myChildObject = this.name.split('.')[1];
myObject[myChildObject] ={  
     "thing1":25,
     "thing2":6
  };

答案 2 :(得分:1)

对象只能有键值对。你不能没有其他人使用。如果您不想分配值,则只需提供undefined。如果你不知道属性的名称,那么你可以简单地使用对象的数组类型表示法" []"。请参阅下面的代码

if line in cmc.log == "# racadm getversion":
    cmclist.next()
    while line == "server-"
        #do stuff to capture firmware

答案 3 :(得分:0)

我会说

for(var key in myChildObject) {
  myObject[key] = myChildObject[key]
}

答案 4 :(得分:0)

不知道你的问题意味着什么,但myObject [“foobar”]可能就是你要找的东西