Imagine esta função curta para fixar um número entre 0 e 255:
c = n => n > 0 ? n < 255 ? n : 255 : 0
Essa é a versão mais curta possível de uma função de grampo com JavaScript (sem os recursos ES.Next)?
PS: Não tenho certeza se é relevante, mas os 0 e 255 não são aleatórios, a idéia é fixar um número como um número inteiro não assinado de 8 bits.
code-golf
math
tips
javascript
Ricardo Amaral
fonte
fonte
[0,n,255]
e pegar o elemento do meio - isso pode ser mais curto?sort()
método JS usa uma comparação lexicográfica por padrão, o que exigiria um retorno de chamada explícito. (Algo assim .)Respostas:
20 bytes
Para referência, esta é a versão original sem espaço em branco e sem nomear a função:
Experimente online!
19 bytes
Podemos salvar um byte invertendo a lógica dos testes ternários e usandon é maior que 255 . Devido à operação bit a bit, isso irá falhar para n ≥ 232. .
n>>8
para testar seExperimente online!
19 bytes
Experimente online!
18 bytes
Experimente online!
Comentado
(Esta é uma revisão fixa do código proposto por @ValueInk nos comentários.)
17 bytes
Experimente online!
Comentado
fonte
n=>n>>8?255:n>0&&n
para 18 bytes , uma vez quefalse
pode ser coagido a0
e isso vai fazer todos os números negativos avaliar afalse
n>>8