CrewCut
@CrewCut
Коплю силы на переезд в тропики

Как можно упростить такой js код?

Есть функция определения размера по интервалам:
if( OG >= 103 && OG <= 106){
	size = 52;
}else if( OG >= 107 && OG <= 110){
	size = 54;
}else if( OG >= 111 && OG <= 114){
	size = 56;
}else if( OG >= 115 && OG <= 118){
	size = 58;
}else if( OG >= 119 && OG <= 122){
	size = 60;
}else if( OG >= 123 && OG <= 126){
	size = 62;
}else if( OG >= 127 && OG <= 130){
	size = 64;
}else if( OG >= 131 && OG <= 134){
	size = 66;
}else if( OG >= 135 && OG <= 138){
	size = 68;
}else if( OG >= 139 && OG <= 142){
	size = 70;
}else if( OG >= 143 && OG <= 146){
	size = 72;
}else if( OG >= 147 && OG <= 150){
	size = 74;
}else if( OG >= 151 && OG <= 154){
	size = 76;
}else if( OG >= 155 && OG <= 158){
	size = 78;
}else if( OG >= 159 && OG <= 162){
	size = 80;
}else if( OG >= 163 && OG <= 166){
	size = 82;
}else if( OG >= 167 && OG <= 170){
	size = 84;
}else if( OG >= 171 && OG <= 174){
	size = 86;
}else if( OG >= 175 && OG <= 178){
	size = 88;
}else if( OG >= 179 && OG <= 182){
	size = 90;
}


Как его можно упростить?
  • Вопрос задан
  • 375 просмотров
Решения вопроса 1
Нижняя граница всегда равна (2 * size) - 1, верхняя граница, соответственно, (2 * size) + 2
var size = 0;
if (OG >= 103 && OG <= 182) {
    for (var i = 52; i <= 90; i += 2) {
        if (OG >= 2 * i - 1 && OG <= 2 * i + 2) {
             size = i;
             break;
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
streetflush
@streetflush
В порядке бреда))

var a = 181; var b =a/2 + a%2/2 -(a/2 + a%2/2)%2 ;
Ответ написан
Комментировать
EreminD
@EreminD
Кое-что умею
вам else не обязательно юзать, у вас выполнится только одно из условий, так что можно просто много if'ов
OG >= 103 && OG <= 106 ? size = 52;
OG >= 107 && OG <= 110 ? size = 54;
OG >= 111 && OG <= 114 ? size = 56;
OG >= 115 && OG <= 118 ? size = 58;
...
OG >= 179 && OG <= 182 ? size = 90;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы