javascript - 使此 JavaScript 代码变干的最优雅的方法

标签 javascript dry

这是我想要 DRY up 的 JavaScript 代码片段:

if(agency == 'abcd')map.entities.push(abcd);
if(agency == 'efgh')map.entities.push(efgh);
if(agency == 'xyz')map.entities.push(xyz);
if(agency == 'pqrs') map.entities.push(pqrs);
if(agency == 'values')map.entities.push(values);

现在将来可能会有更多的 ifs 用于不同的键。JavaScript 不提供我可以在这里使用的 HashMap 构建。使用数组和 id 的东西让它变干太俗气了。 有没有更简单的解决方案?可能是这样的

if(agency == 'abcd')map.entities.push(stringToVariable('abcd'));

然后我可以只使用 for 并遍历键。我不确定这在 JavaScript 中是否可行。

最佳答案

也许吧:

map.entities.push({abcd: abcd, efgh: efgh, xyz: xyz}[agency]);

对我来说,这种情况需要退后一步并重新思考更多情况,因为它本身就是丑陋的。为什么会有所有这些单独的变量,而不是具有与“代理”值对应的键的单个对象?

关于javascript - 使此 JavaScript 代码变干的最优雅的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038503/

相关文章:

go - 类似于 Go 中的 lambda 表达式(合并类似的方法)

php - 如何检查许多 Controller 方法正在处理的对象是否存在 DRY 和 Laravel 风格?

objective-c - 如何重用 UIView 和方法 - iOS 中的 DRY 代码

javascript - 用于在滚动时将元素 "fly"打开/关闭屏幕的插件

javascript - 如何从添加删除选择框中获取值

javascript - 在 jQuery 条形图中加载 php foreach 值

mysql - 如何保持 ActiveRecord 关联 DRY?

javascript - Jquery Mouseenter 单击以删除类不起作用

javascript - 如何使用Grails捕获图像并从网络摄像头保存?

java - Struts2 动态表单流