Представьте себе эту короткую функцию для фиксации числа от 0 до 255:
c = n => n > 0 ? n < 255 ? n : 255 : 0
Это самая короткая версия функции зажима с JavaScript (без функций ES.Next)?
PS: Не уверен, что это актуально, но 0 и 255 не случайны, идея состоит в том, чтобы сжать число как 8-разрядное целое число без знака.
code-golf
math
tips
javascript
Рикардо Амарал
источник
источник
[0,n,255]
и взять средний элемент - может быть, это короче?sort()
метод JS по умолчанию использует лексикографическое сравнение, так что для этого потребуется явный обратный вызов. (Нечто подобное .)Ответы:
20 байт
Для справки: это оригинальная версия без пробелов и без названия функции:
Попробуйте онлайн!
19 байт
Мы можем сохранить байт, инвертировав логику троичных тестов и используяn 255 . Однако из-за побитовой операции это не удастся при n≥232 .
n>>8
для проверки, больше лиПопробуйте онлайн!
19 байт
Попробуйте онлайн!
18 байт
Попробуйте онлайн!
комментарии
(Это исправленная редакция кода, предложенного @ValueInk в комментариях.)
17 байт
Попробуйте онлайн!
комментарии
источник
n=>n>>8?255:n>0&&n
на 18 байт , так какfalse
может быть принужден к ,0
и это сделает все отрицательные числа вычислятьсяfalse
n>>8