Existe um site chamado "Return True to Win", com tarefas interessantes para programadores Javascript. O objetivo é encontrar argumentos para uma determinada função que a força a retornar verdadeira.
A seguir, uma das tarefas:
function total(x) {
return (x < x) && (x == x) && (x > x);
}
Os usuários devem encontrar trechos para o valor x
que fazem com que a função retorne true. Para testar trechos, você chama a função com seu trecho como parâmetro (ou seja total(<snippet>)
).
Encontrei uma solução de 22 caracteres:
{valueOf:_=>n++%3},n=0
Algumas pessoas encontraram a solução em 21 caracteres. Não consigo encontrar esta solução. Qual é a solução em 21 caracteres?
code-golf
tips
javascript
Oleg
fonte
fonte
{valueOf:Math.random}
funciona de vez em quando ... mas eu suspeito que possa infringir alguma regra ... (ou talvez não?)Respostas:
21 caracteres
Minha piada original, que foi rebaixada e proposta para exclusão:
11 caracteres :)
Teste:
fonte
function total(x) { ... } total(<insert here>)
e ter o resultado datotal()
chamada sertrue
, então eu não acho que isso vai funcionar ...<insert here>
->0),(true
:)0)||(true
. No entanto, nem trabalho, e agora estou totalmente confuso, porque há outro nível em que você tem que fazer0);(!0
ouResposta Cheaty
Eu já mencionei isso nos comentários, mas não foi testado. É agora. Você precisará enviá-lo até que funcione.
Demo
fonte
x == x
se tornou verdadeiro se x é escolhido aleatoriamente todas as vezes.valueOf
não é invocado quando o teste de igualdade é processado. Por outro lado, os operadores de comparação esperam valores primitivos, o que forçavalueOf
a ser chamado. Aqui está um teste mostrando isso.