小编典典

switch case语句中的表达式

javascript

我正在尝试创建一个switch语句,但似乎无法使用被求值的表达式(而不是设置的字符串/整数)。我可以轻松地使用if语句来执行此操作,但希望大小写应该更快。

我正在尝试以下

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;
    }
}

我缺少明显的东西吗?Google在这种情况下并不友好。

任何帮助/指针表示赞赏


阅读 1865

收藏
2020-05-01

共1个答案

小编典典

你总是可以做

switch (true) {
  case (amount >= 7500 && amount < 10000):
    //code
    break;
  case (amount >= 10000 && amount < 15000):
    //code
    break;

  //etc...

它之所以有效true是因为它是一个常量,因此将执行第一个case语句下带有计算结果为true的表达式的代码。

我猜这有点“棘手”,但我认为使用它没有错。一个简单的if/else声明可能会更简洁,并且您不必担心意外跌落。但是还是有。

2020-05-01