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

时间:2017-04-13 11:47:36

标签: javascript properties eval

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

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')?

2 个答案:

答案 0 :(得分:1)

为什么不使用对象并将动态值作为键?

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;

答案 1 :(得分:0)

  

var options = []

     

选项[ 'eventCity'] = [       {date:'2017年4月11日',输入:'alpha'},       {date:'2017年4月26日',输入:'beta'}];