这是我想要 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/