我试图编写一个通用脚本来循环一个对象数组,并在每个循环中返回属性的值。而不是通过
访问属性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.
}
答案 0 :(得分:1)
当尝试使用变量提取对象属性的值来引用属性的键时,表示键的变量应该用方括号括起来而不用点
Logger.log(films[0][headers[0]]);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors