【问题标题】:Change if/else on switch更改 if/else on switch
【发布时间】:2023-04-07 09:11:01
【问题描述】:

美好的一天!想在 switch 上更改我的 if\else 语句。

我有这个工作代码。

$tbody.append([
'<td class="view">' + (row.age === '1' ? '18' : row.age === '2'  ? '18-24' : row.age === '3' ? '25-35' : row.age === '4' ? '35+' : 'any' ) + '</td>',
]);

我试图用这个结构来代替它:

        var text= 0;

        switch (row.age) {
          case 0:
            text= "any";
            break;
          case 1:
            text = "18";
            break;
          case 2:
            text = "18-24";
            break;
          case 3:
            text = "25-34";
            break;
          case 3:
            text = "35+";
            break;
        }

$tbody.append([
                '<td class="view">' + text + '</td>',
]);

但它不起作用。结果总是给出0。有什么想法吗?

【问题讨论】:

  • “它不起作用”是什么意思?请详细说明。它什么也没做?它附加了错误的东西?
  • @Jesse 更新了我的问题
  • row.age 似乎是一个字符串,与cases 中的字符串进行比较。

标签: javascript jquery if-statement switch-statement


【解决方案1】:

如果row.age 是一个字符串,那么你需要将case 值作为stringinteger 如果row.age 是整数。

switch (row.age) {
          case '0':
            text= "any";
            break;
          case '1':
            text = "18";
            break;
          case '2':
            text = "18-24";
            break;
          case '3':
            text = "25-34";
            break;
          case '3':
            text = "35+";
            break;
        }

根据您的问题,if-elserow.age 是字符串,因此在switch-case 块中,您必须将其作为整数进行比较。因为,切换比赛就像 === 严格匹配。

【讨论】:

    【解决方案2】:

    row.age === '1'case 1 是不同的。第一个是字符串,第二个是int

    【讨论】:

      【解决方案3】:

      尝试删除.append()处的[],这会返回错误

      NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null.

      var row = {};
      row.age = 1;
      var text = "";
      
      switch (row.age) {
        case 0:
          text = "any";
          break;
        case 1:
          text = "18";
          break;
        case 2:
          text = "18-24";
          break;
        case 3:
          text = "25-34";
          break;
        case 3:
          text = "35+";
          break;
      }
      
      
      $("body").append("<span>" + text + "</span>")
      &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"&gt;&lt;/script&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-23
        • 1970-01-01
        • 2012-06-02
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多