переключение JavaScript с использованием интервалов - PullRequest
7 голосов
/ 08 июня 2010

Могу ли я использовать интервалы в операторе 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";
            }

???

Ответы [ 3 ]

16 голосов
/ 08 июня 2010

Это должно работать, хотя:

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";
        }
3 голосов
/ 08 июня 2010

Нет. switch может использоваться только с дискретными значениями. Для диапазонов вы должны будете использовать оператор if.

var val = parseInt(troops[i]);
if (val < 10) {
    editbox.style.fontSize = "13px";
} else if (val < 100) { 
    // ...
} else {
}
1 голос
/ 08 июня 2010

Иногда переключатель слишком похож на работу

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...