访问对象属性时如何避免eval?

How to avoid eval when accessing object properties?

我读了很多书,但我无法弄清楚以下内容:

var eventCity = [
    {date: 'Apr 11 2017', type: 'alpha'},
    {date: 'Apr 26 2017', type: 'beta'}
];

var currentCity = 'eventCity';  // this is generated dynamically

var aDate = eval(currentCity)[0].date;

如何避免使用 eval() 保持相同的结果 ( aDate = 'Apr 11 2017' )?

var options = []

options['eventCity']=[ {date: 'Apr 11 2017', type: 'alpha'}, {date: 'Apr 26 2017', type: 'beta'} ];

为什么不用对象,把动态值作为key呢?

var object = {
        eventCity: [
            { date: 'Apr 11 2017', type: 'alpha' },
            { date: 'Apr 26 2017', type: 'beta' }
        ]
    },
    currentCity = 'eventCity',  // this is generated dynamically
    aDate = object[currentCity][0].date;