我正在尝试创建一个 switch 语句,但我似乎无法使用被评估的表达式(而不是设置的字符串/整数)。我可以使用 if 语句轻松做到这一点,但 case 应该会更快。
我正在尝试以下操作
function reward(amount) {
var $reward = $("#reward");
switch (amount) {
case (amount >= 7500 && amount < 10000):
$reward.text("Play Station 3");
break;
case (amount >= 10000 && amount < 15000):
$reward.text("XBOX 360");
break;
case (amount >= 15000):
$reward.text("iMac");
break;
default:
$reward.text("No reward");
break;
}
}
我是否遗漏了一些明显的东西或者这是不可能的?谷歌在这起案件中并不友好。
任何帮助/指示表示赞赏
M
amount
是一个数字,但其中的表达式case
子句仅评估为布尔值;这些值永远不会匹配。
你总是可以做
switch (true) {
case (amount >= 7500 && amount < 10000):
// Code
break;
case (amount >= 10000 && amount < 15000):
// Code
break;
// etc.
}
它之所以有效,是因为匹配的值现在是布尔值true
,所以第一个下面的代码case
带有计算结果为的表达式的子句true
将被执行。
我想这有点“棘手”,但我认为使用它没有什么问题。一个简单的if
–else
声明可能会更简洁,而且您不必担心意外失败。但无论如何它就在那里。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)