使用string作为对象字段来引用

时间:2015-05-06 21:06:52

标签: javascript arrays object

这是我想要完成的一个例子,正如预期的那样,它无法正常工作。

是否有相似之处可行?

var fieldsToCheck = ["a", "b", "c", "d", "e", "f"];

for (var i = 0; i < fieldsToCheck.length; i++){
    var field = fieldsToCheck[counter];
    if (!obj.field) {
         console.log('There is no field of: ' + field);
    }
 }

我最初只对每个字段使用if语句,我想知道是否有更快的方法来执行此操作。

1 个答案:

答案 0 :(得分:2)

您无法以这种方式访问​​属性。由于它是变量,因此必须使用括号而不是点符号:

var fieldsToCheck = ["a", "b", "c", "d", "e", "f"];

for (var i = 0; i < fieldsToCheck.length; i++){
    var field = fieldsToCheck[counter];
    if (!obj[field]) {
         console.log('There is no field of: ' + field);
    }
 }

使用点符号时,例如obj.field,您实际上是在询问obj是否有密钥field,而不是obj的密钥是变量field的值。对于您正在访问包含-等非变量有效字符的未知字符串或字符串键的任何内容,您必须使用括号表示法obj[field]obj["a"]