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

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

最佳答案

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

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;

关于javascript - 访问对象属性时如何避免 eval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43391490/

相关文章:

javascript - 使用 java 脚本在 MVC 中提供用户友好的 URL

javascript - 如何将下拉区域与另一个下拉区域隔离

matlab - 如何在不显示的情况下编辑保存在 .fig 文件中的图形的属性

reflection - 为什么反射不在Struct中设置属性?

.net - 为什么我们使用 .NET 属性而不是普通的旧 get/set 函数?

javascript - 替换私有(private)范围变量中的 eval

javascript - Angular 日历逻辑问题(+Plunker 帮助)

lisp - Common Lisp EVAL 函数引用

javascript - 麻烦评估函数定义(...在 JavaScript 中)

JavaScript:表单:验证电子邮件地址并在发送前使用 Starts.With 检查另一个字段