Антон Шаманов, Для правильной системы битовых флагов любая маска корректна. Неиспользуемые биты просто игнорируются.
А поскольку у вас не битовая маска, то вам придётся написать функцию, генерирующую все возможные комбинации ваших флагов и проверять, что нужное значение есть среди этих комбинаций.
Накладываем.
1 + 2 + 6 = 9
9 & ~(1 | 2 | 6) = 8
По вашему алгоритму получили ошибку, но автор то использовал не битовые флаги, поэтому ваш алгоритм работает неверно.
А в вашем случае надо вычислять все возможные суммы, хранить их, как-то вычислять, входит ли конкретное значение в конкретную сумму и т.д., и т.п., и пр.
Это несложно для двух-трёх флагов, но когда их будет 20, то вы получите 220 возможных комбинаций.
sxivanov, Мда-с. Получился индусский код. А ведь достаточно было написать ((step == undefined || step == 0) && start < end)
То есть, явным образом задать требуемый порядок операций.
Да, и сравнивать с undefined и null по отдельности есть смысл только при строгом сравнении. При нестрогом undefined == null.
godsplane, Браузеры, не понимающие значения "none" будут игнорировать объявление и использовать ранее заданное значение, то есть пустую строку. Понимающие вообще не будут генерировать псевдоэлементы.
apoca1ipsis, Но тогда не получится сделать два списка в одном стиле, если в первом, например, 5 элементов, а во втором 10. В первом списке лидирующих нулей не будет.
Ankhena, Со счётчиком проблема, когда он перейдёт за 10. Строковых функций в CSS, вроде, нет. Так что будет либо 09 ... 010, либо 9 ... 10. Сделать 09 ... 10 не получится.
Что в квадрат, что в круг, попадает бесконечное количество точек. Таково свойство реального пространства.
Да, и "в радиус" тоже попадает бесконечное количество точек.
Можно рекурсивно, можно итеративно.