最优雅的方式使这个JavaScript代码干

Sha*_*nak 1 javascript dry

以下是我想要干扰的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);
Run Code Online (Sandbox Code Playgroud)

现在将来可能会有更多不同密钥的ifs.JavaScript不提供HashMap的构建,我可以在这里使用.使用数组和id的东西使它干得太俗气了.有更简单的解决方案吗?可能是这样的

if(agency == 'abcd')map.entities.push(stringToVariable('abcd'));
Run Code Online (Sandbox Code Playgroud)

然后我可以使用for和迭代键.我不确定这在JavaScript中是否可行.

Poi*_*nty 11

也许:

map.entities.push({abcd: abcd, efgh: efgh, xyz: xyz}[agency]);
Run Code Online (Sandbox Code Playgroud)

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