【发布时间】:2014-08-20 09:59:11
【问题描述】:
我有以下部分代码,我不太喜欢:
if (a < 2){
b = 'somethingX';
} else if (a < 4){
b = 'somethingY';
} else if (a < 6){
....;
} else {
b = 'somethingZ';
}
我有大约 20 个这样的 if else 语句,它们都由(a < SomeNumber) 条件组成。结果我分配给b can 不是a 的函数,并且a < someNumber 不是定期间隔。我想简化它们,但无法提出适当的解决方案。
如果我有(a === SomeNumber),我可以通过创建一个对象并访问该对象的值(similar to this)轻松地做到这一点,但这里我有
P.S.请不要建议将其更改为 switch。我想让它更易于阅读,根据我的主观意见阅读switch 与if else 处于同一水平。
P.S.2 人们问这种逻辑的原因。基本上我有一个瘦客户端,它返回错误消息的代码。他们以某种特定的方式分组。例如,从 1 到 8 的所有内容都是因为用户存在问题。从 9 到 21 因为密钥不正确。有时我不需要通知用户确切的消息,所以由于分组我可以只告诉一般消息。为什么我的服务器不发送消息?它越细越好,所以发送 7 比发送大字符串要好。
【问题讨论】:
-
如果你有 20 个这样的语句,你可能想使用
switch。 -
@indieblue 谢谢你的评论。它提醒我我忘了写我不想使用开关(我更新了我的问题)
-
switch 更容易阅读 IMO。
-
@BOSS 这正是我添加主观这个词的原因
-
@SalvadorDali:我明白了。对于那个用例,一个(JSON?)配置对象将 ids 映射到消息和/或类别,类似于 GameAlchemist 提出的,似乎是要走的路。顺便说一句,“瘦客户端”通常指的是瘦逻辑(和大量数据传输),而不是瘦带宽:-)
标签: javascript