当名称位于字符串中时,JavaScript获取对象属性值

当名称位于字符串中时,JavaScript获取对象属性值,javascript,Javascript,如果您知道这应该有效: var object = { property: "value" } var propertyname = "property"; var propertyvalue = object[propertyname]; 但是,当对象看起来像这样时,如何使用propertyname变量获取属性值呢 var object = { anotherObject: { property: "value" } } var propertyname = "anothe

如果您知道这应该有效:

var object = {
  property: "value"
}
var propertyname = "property";
var propertyvalue = object[propertyname];
但是,当对象看起来像这样时,如何使用propertyname变量获取属性值呢

var object = {
  anotherObject: {
    property: "value"
  }
}
var propertyname = "anotherobject.property";
var propertyvalue = object[propertyname]; // This should not work...

编辑:按照建议,在这种情况下,可以在“.”上拆分propertyname。但如果这是一个任意的水平呢。我能否以某种方式构造一个for循环来获取属性值?

OP的代码不起作用,因为在
对象中没有名为
另一个对象的属性。有一个名为
的属性另一个对象
,其值是一个名为
属性
的对象。要做到这一点,您必须访问这些连续级别的属性

这段代码将组合属性名称拆分,然后执行连续的属性访问

var nameArray = propertyname.split('.');
var propertyvalue = object;
for (var i = 0; i < nameArray.length; i++) {
    propertyvalue = propertyvalue[nameArray[i]];
}
var nameArray=propertyname.split('.');
var propertyvalue=对象;
对于(var i=0;i
字符上拆分属性名称,然后使用连续元素重复获取属性值。这正是我需要的。谢谢虽然还不允许接受答案…您能解释一下您的代码工作的确切原因吗?为什么OP不起作用,而你的呢?请看。