在Javascript中,如何将字符串转换为可用于调用属性的格式?

4

所以,我有一个关联数组,数组中的键是对象的属性。我想循环遍历该数组,并在每次迭代中执行以下操作:

Object.key

但是这样做不起作用,会返回undefined而不是属性的值。

有没有办法解决这个问题?

3个回答

10

你可以使用for ... in循环:

for (var key in obj) {
    //key is a string containing the property name.

    if (!obj.hasOwnProperty(key)) continue;  //Skip properties inherited from the prototype

    var value = obj[key];
}

9
你应该使用方括号符号来访问属性:
var value = object[key];

这个运算符甚至可以计算表达式,例如:

var value = object[condition ? 'key1' : 'key2'];

更多信息:

不要忘记,Array 对象的方法期望使用数值索引,你可以添加任何属性名称,但这并不是推荐的做法,所以,代替实例化一个 Array 对象(例如 var obj = [];var obj = new Array();),你可以使用一个简单的对象实例(例如 var obj = {}var obj = new Object();)。


2

是的。假设key是一个字符串,尝试使用myObject[key]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接