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

348
30 декабря 2016, 13:02
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;
}

Можно ли как нибудь переписать эту функцию с помощью цикла?

Answer 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;
}
READ ALSO
Передача номера категории в query_post

Передача номера категории в query_post

Сайт работает на wordpressЕсть цикл

342
Слайдер Owl Carousel неправильно работает в Google Chrome

Слайдер Owl Carousel неправильно работает в Google Chrome

На странице в самом низу используется слайдер Owl Carousel 2Для смены слайдов используются эффекты fadeIn/fadeOut

541
Как сделать, чтобы при клике на заголовок меню развернулось/свернулось подменю?

Как сделать, чтобы при клике на заголовок меню развернулось/свернулось подменю?

Как сделать, чтобы при клике на заголовок меню развернулось подменю, и так же закрывалось при клике?

465
Функция объединения двух массивов

Функция объединения двух массивов

Подскажите есть ли функция в js/jquery для объединения двух массивов в один, следующим образом, чтобы значение первого массива было ключом, а значение...

344