我在基于变量动态检索对象行时遇到了一个问题。对于以下情况,什么是一个好的解决方案?
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'
}
};
在你的方法中试试这个-
function getDetails(id) {
completeID = "event" + id;
title = eventDetails[completeID].title;
}
作为对象属性,可以使用方括号表示法进行访问。
附带说明一下,在getDetails
函数中,您声明的变量没有var
关键字(除非它们已经定义为全局变量)。这将把它们创建为全局变量,而以这种方式使用全局变量被认为是一种非常糟糕的做法。尝试按以下方式声明它们-
function getDetails(id) {
var completeID = "event" + id,
title = eventDetails[completeID].title;
// do whatever you want with the title
}