5 способов для определения оdd / even в web-приложении
В статье будут рассмотрены 5 способов для для определения четности / нечетности строки в цикле. В качестве языка для примеров взят javascript. Некоторые из способов полностью переносимы в любые другие языки.
В реальных проектах такого способа я не встречал, но все же он работает.
Возможно, кто-то использует какой-нибудь свой оригинальный способ и захочет им поделиться. Пишите, добавлю в статью
Способ #1
Этот способ, пожалуй, самый распространенный. Его можно встретить во всевозможных примерах, мануалах. Основывается он на четности и нечетности чисел (проверяем остаток от деления на двойку).<code class="javascript">var type = i % 2 != 0 ? 'odd' : 'even'; </code>(Живой пример: jsfiddle.net/Freed0m/y799r/ )
Способ #2
Следующий способ основывается на простом математическом правиле — минус на минус дает плюс, плюс на минус — минус. На практике встречается реже чем первый, но все-таки встречается.<code class="javascript">var tmp = -1; / ... / var type = (tmp *= -1) > 0 ? 'odd' : 'even'; </code>(Живой пример: jsfiddle.net/Freed0m/gm8D4/ )
Способ #3
Данный способ определяет четность / нечетность простой проверкой бита.В реальных проектах такого способа я не встречал, но все же он работает.
<code class="javascript"> var type = i & 1 ? 'odd' : 'even'; </code>(Живой пример jsfiddle.net/Freed0m/gHWep/ )
Способ #4
Этот способ примитивен, его принцип заключается в том, что бы присваивать переменной типа boolean обратное значение в цикле. На практике встречается очень редко.<code class="javascript">var odd = true; / ... / var type = odd ? 'odd' : 'even'; odd = !odd; </code>(Живой пример jsfiddle.net/Freed0m/jAejs/ )
Способ #5
Следующий способ основывается на css и для меня является приоритетным для использования. Не поддерживается только IE 7-8.<code class="css">div:nth-child(odd) { color: red; } div:nth-child(even) { color: blue; } </code>(Живой пример jsfiddle.net/Freed0m/Ub6qs/ )
Возможно, кто-то использует какой-нибудь свой оригинальный способ и захочет им поделиться. Пишите, добавлю в статью
0 комментариев