Страницы

Поиск по вопросам

четверг, 13 декабря 2018 г.

Помогите укоротить функцию в javascript?

function replaceNum() {
if (count2 < 3) { count4 = 0; }else if(count2 >= 3 && count2 < 6) { count4 = 1; }else if (count2 >= 6 && count2 < 9) { count4 = 2; }else if (count2 >= 9 && count2 < 12) { count4 = 3; }else if (count2 >= 12 && count2 < 15) { count4 = 4; }else if (count2 >= 15 && count2 < 18) { count4 = 5; }else { count4 = 6; }
count2 += 1; }
Можно ли как нибудь переписать эту функцию с помощью цикла?


Ответ

Если вкратце, то согласно вашей логике цикл вам не нужен, и достаточно целочисленного деления: Math.floor округляет результат до ближайшего меньшего целого.
function replaceNum() { count4 = Math.floor(count2/3); count2 += 1; }
У этого кода есть ряд других стилистических проблем, но об этом мы вероятно поговорим в следующей серии)
Одна из этих проблем - именование переменных. Не стоит называть переменные count2, count4. Старайтесь называть их как можно более осмысленно, это поможет когда будете в этом разбираться.
Название переменной обычно состоит из одного или нескольких английских слов написанных подряд. Чтобы отделить одно слово от другого, каждое следующее обычно называется с большой буквы. Такой стиль называется camelCase (верблюжья нотация) Например
myAwesomeVariable = 15;
Собственно если изменить названия переменных в вашем коде до осмысленных, это будет например так. Разумеется это неоднозначно, Вы можете придумать свои красивые имена (в js можно кстати переменные по-русски называть но никогда-никогда-никогда их потом никому не показывайте =)); В любом случае это будет лучше чем count2, count4
function processCardIndexes() { cardStackIndex = Math.floor(cardTotalIndex/3); cardTotalIndex += 1; }

Комментариев нет:

Отправить комментарий