Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用变量名向JavaScript对象添加子对象_Javascript - Fatal编程技术网

使用变量名向JavaScript对象添加子对象

使用变量名向JavaScript对象添加子对象,javascript,Javascript,假设我有一个空白的JavaScript对象: myObject {} 我还有一个变量: var myChildObject = this.name.split('.')[1]; 举个例子,假设myChildObject等于“FooBar”。现在,我想在myObject中添加一个子对象,名为“FooBar”,只是我们不能硬编码“FooBar”。我们必须使用变量名myChildObject 我试过这个: myObject.appendChild(myChildObject); 那不行 目标是:

假设我有一个空白的JavaScript对象:

myObject {}
我还有一个变量:

var myChildObject = this.name.split('.')[1];
举个例子,假设
myChildObject
等于“FooBar”。现在,我想在
myObject
中添加一个子对象,名为“FooBar”,只是我们不能硬编码“FooBar”。我们必须使用变量名
myChildObject

我试过这个:

myObject.appendChild(myChildObject);
那不行

目标是:

{  
   "myObject":{  
      "FooBar":{  
         "thing1":25,
         "thing2":6
      },
      .....
}
但是我需要动态地构建整个对象,而不提前知道名称(根除外)。

对象是一种“键值”类型的对象,有点像Java中的映射。你有没有试过这样的方法:

let myObject = {};
let myChildObject = "fooBar";
myObject[myChildObject] = {};
这样你就有了一个对象的“fooBar”键。。。现在,您必须决定希望该键的值是什么。

对象是一种“键值”类型的东西,有点像Java中的映射。你有没有试过这样的方法:

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

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

对象只能有键值对。你不能用一个而不用另一个。如果不想赋值,只需给出未定义的值即可。如果您不知道属性的名称,那么您可以简单地使用对象“[]”的数组类型表示法。请参阅下面的代码

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

myObject[myChildObject] = undefined;

console.log(myObject.hasOwnProperty(myChildObject)); // true

对象只能有键值对。你不能用一个而不用另一个。如果不想赋值,只需给出未定义的值即可。如果您不知道属性的名称,那么您可以简单地使用对象“[]”的数组类型表示法。请参阅下面的代码

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

myObject[myChildObject] = undefined;

console.log(myObject.hasOwnProperty(myChildObject)); // true
我得说

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

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

不知道你的问题是什么意思,但是myObject[“foobar”]可能是你要找的对象

不知道你的问题是什么意思,但是myObject[“foobar”]可能是你要找的对象

“foobar”
不过是一个字符串,而不是对象。myObject[myChildObject]=?;对@Madara。我想添加一个名为“FoBar”的新对象,JavaScript对象的可能副本具有键值对。您想要什么作为FooBar
“FooBar”
的键是一个字符串,而不是一个对象?;对@Madara。我想添加一个名为“FoBar”的新对象,JavaScript对象的可能副本具有键值对。你想要什么作为FooBar的密钥谢谢,但是,问题是,FooBar不能硬编码。我事先不知道FooBar的名字,所以它一定是一个变量好吧,我们现在有点进展了!让我来玩这个,我会BRB。谢谢你,但问题是,FooBar不能硬编码。我事先不知道FooBar的名字,所以它一定是一个变量好吧,我们现在有点进展了!让我来玩这个,我会玩的。