通过Object.keys TypeError访问Javascript / Google Apps脚本属性

时间:2015-05-13 14:00:37

标签: javascript properties google-apps-script typeerror

我试图编写一个通用脚本来循环一个对象数组,并在每个循环中返回属性的值。而不是通过

访问属性
myArray[0].someProperty;
myArray[0].anotherProperty;

我使用Object.keys(myArray [0])将属性名称存储在数组中。但是在运行时我得到TypeErrors。谁能告诉我我做错了什么?或者有没有办法可以找到更多关于TypeError在这种情况下的含义?我的示例代码如下:

// Film Class
function Film(title, year, genre)
{
  this.title = title;
  this.year = year;
  this.genre = genre;
}

function Main()
{
  var films = [];

  films.push(new Film("Furious Seven", 2015, "Action"));
  films.push(new Film("The Matrix", 1999, "Sci Fi"));
  films.push(new Film("Invictus", 2009, "Drama"));

  var headers = Object.keys(films[0]);

  Logger.log(headers[0]);          // title
  Logger.log(films[0].title);      // Furious Seven
  Logger.log(films[0].headers[0]); // TypeError: Cannot read property "0" from undefined.
  Logger.log(films[0].(headers[0])); // TypeError: [object Object] is not an XML object.
}

1 个答案:

答案 0 :(得分:1)

当尝试使用变量提取对象属性的值来引用属性的键时,表示键的变量应该用方括号括起来而不用点

Logger.log(films[0][headers[0]]);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors