【问题标题】:javascript switch using intervalsjavascript使用间隔切换
【发布时间】:2010-06-08 00:49:36
【问题描述】:

我可以在 switch 语句中使用间隔吗?

喜欢

switch (parseInt(troops[i])) {
                case <10:
                    editbox.style.fontSize = "13px";
                    break;
                case <100:
                    editbox.style.fontSize = "12px";
                    break;
                case <1000:
                    editbox.style.fontSize = "8px";
                    editbox.size = 3;
                    //editbox.style.width = "18px";
                    break;
                default:
                    editbox.style.fontSize = "10px";
            }

???

【问题讨论】:

    标签: javascript switch-statement intervals


    【解决方案1】:

    这应该可以工作:

    var j = parseInt(troops[i]);
    switch (true) {
                case (j<10):
                    editbox.style.fontSize = "13px";
                    break;
                case (j<100):
                    editbox.style.fontSize = "12px";
                    break;
                case (j<1000):
                    editbox.style.fontSize = "8px";
                    editbox.size = 3;
                    //editbox.style.width = "18px";
                    break;
                default:
                    editbox.style.fontSize = "10px";
            }
    

    【讨论】:

    • 聪明! (这是填充物,15 char min argh!)
    • 为了安全起见,在使用 parseInt() 时应该包含一个基数参数。所以:parseInt(troops[i],10) 可以避免一些令人抓狂的错误。例如,如果部队[i] 的值恰好是“010”,js 会猜测基数为 2。可能不是你想要的。
    【解决方案2】:

    没有。 switch 只能用于离散值。对于范围,您必须使用 if 语句。

    var val = parseInt(troops[i]);
    if (val < 10) {
        editbox.style.fontSize = "13px";
    } else if (val < 100) { 
        // ...
    } else {
    }
    

    【讨论】:

    • +1 为正确答案。如果可以的话,再次+1,以正确拼写离散。 ;-)
    【解决方案3】:

    有时开关太像工作了

    var j= parseInt(troops[i]),
    val= j<10? 13: j<100? 12: j<1000? 8: 10;
    
    editbox.style.fontSize= val+'px';
    if(val== 8) editbox.size= 3;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      相关资源
      最近更新 更多