javascript - 使用字符串作为对象字段来引用

标签 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 语句来执行此操作,我想知道是否有更快的方法来执行此操作。

最佳答案

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

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/

相关文章:

java - 如何在java中创建嵌套的json

javascript - 如何在鼠标滚动时折叠 Jquery Accordion

php - 如何从字符串中快速检索数组中的标签?

javascript - 如何使用 lodash _isEmpty 检查对象是否为空?

javascript - 如何创建我点击的元素输入的对象?

javascript - 如何使用我已有的代码将 javascript 弹出窗口居中

c++ - 计算 Chef 剩余工作的代码

javascript - 使用用户提供的对象的属性(如果存在),否则使用默认值

javascript - Javascript 对象/关联数组的这两种表示法有什么区别?

php - 使用curl加载使用JS提交外部表单的HTML文件