以下是我想要干扰的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)
对我而言,这种情况需要退后一步,重新思考更多的情况,因为它本身就是丑陋的.为什么存在所有这些单独的变量,而不是具有与"代理"值对应的键的单个对象?