在Javascript中,如何转换字符串以便可以用来调用属性?

joe*_*son 4 javascript string properties

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

Object.key
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用并导致返回undefined而不是属性的值.

有没有办法做到这一点?

SLa*_*aks 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];
}
Run Code Online (Sandbox Code Playgroud)


CMS*_*CMS 9

您应该使用括号表示法属性访问器:

var value = object[key];
Run Code Online (Sandbox Code Playgroud)

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

var value = object[condition ? 'key1' : 'key2'];
Run Code Online (Sandbox Code Playgroud)

更多信息:

不要忘记Array对象的方法,期望使用数字索引,你可以添加任何属性名称,但不推荐使用,所以改为使用一个Array对象(即var obj = [];或者var obj = new Array(); 你可以使用一个简单的对象实例(即var obj = {}或者)var obj = new Object();.