Estou tentando criar uma função em várias linhas.
Parâmetros do desafio:
- A função retorna 'bárbaro'
- Apenas 2 caracteres por linha
- 40 linhas no máximo. Continuo tentando usar uma flecha gorda para declarar minha função, mas as flechas gordas não parecem funcionar se você não as tiver conectado.
Fonte do desafio: https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world
Meu trabalho atual:
f=
(
)=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'
Isso funciona, mas o ') =>' tem 3 caracteres. Eu realmente só quero saber como é possível esticar a criação de uma função. Não consigo encontrar nenhuma informação em nenhum lugar, pois obviamente não é muito prático.
code-challenge
restricted-source
tips
source-layout
javascript
theNewfelll
fonte
fonte
Respostas:
Aqui está uma solução de 38 linhas:
Ele cria uma função usando o
Function
construtor, ao qual acessa[].map.constructor
usando notação subscrita ([]['map']['constructor']
). Este é o método que o JSFuck usa para criar funções.fonte
[]['map']['constructor']
vez de[]['sum']['constructor']
?35 linhas
Experimente online!
Usa o fato de que
0
é um número, o construtor de0
éNumber
e o construtor deNumber
éFunction
.32 linhas
Experimente online!
Isso basicamente roda
que usa a estrutura IIFE . O bônus adicional é que podemos quebrar algumas partes do corpo da função para reduzir a contagem de linhas.
24 linhas
Experimente online!
Versão em linha:
Como tudo o que queremos é retornar uma string, podemos nos livrar de um método string vinculado a uma string. Ao usar
trim
, também podemos deixar com segurança uma nova linha inicial.fonte