这是我试图完成的示例,但正如预期的那样,它不起作用。
有类似的东西可以工作吗?
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 语句来执行此操作,我想知道是否有更快的方法来执行此操作。
最佳答案
您无法以这种方式访问属性。由于它是一个变量,因此必须使用括号而不是点符号:
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"]
。
关于javascript - 使用字符串作为对象字段来引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087519/