我在动态尝试基于变量检索对象行时遇到了问题。对以下情况有什么好处?
function getDetails(id) {
completeID = "event" + id;
title = eventDetails.completeID.title;
}
var eventDetails = {
'event1': {
'title': 'Lisbon Earthquake',
'content': "Test Content",
},
'event2': {
'title': 'Falling Stars',
'content': 'Test Content'
}
};
答案 0 :(得分:2)
在您的方法中尝试此操作 -
function getDetails(id) {
completeID = "event" + id;
title = eventDetails[completeID].title;
}
可以使用square bracket notation来访问对象属性。
另外,在您的getDetails
函数中,您声明的变量没有var
关键字(除非它们已被定义为全局变量)。这会将它们创建为全局变量,以这种方式使用全局变量被认为是一种非常糟糕的做法。尝试按如下方式声明它们 -
function getDetails(id) {
var completeID = "event" + id,
title = eventDetails[completeID].title;
// do whatever you want with the title
}