J'essaie de créer une fonction sur plusieurs lignes.
Paramètres du défi:
- La fonction renvoie «barbare»
- Seulement 2 caractères par ligne
- 40 lignes maximum. J'essaie toujours d'utiliser une grosse flèche pour déclarer ma fonction, mais les grosses flèches ne semblent pas fonctionner si vous ne les avez pas connectées.
Source du défi: https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world
Mon travail actuel:
f=
(
)=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'
Cela fonctionne, mais le ') =>' comporte 3 caractères. Je veux vraiment juste savoir comment il est possible d'étendre même la création d'une fonction. Je ne trouve aucune information là-dessus car ce n'est évidemment pas très pratique.
code-challenge
restricted-source
tips
source-layout
javascript
theNewfelll
la source
la source
Réponses:
Voici une solution à 38 lignes:
Il crée une fonction en utilisant le
Function
constructeur, auquel il accède en[].map.constructor
utilisant la notation indice ([]['map']['constructor']
). Il s'agit de la méthode utilisée par JSFuck pour créer des fonctions.la source
[]['map']['constructor']
place de[]['sum']['constructor']
?35 lignes
Essayez-le en ligne!
Utilise le fait que
0
est un nombre, le constructeur de0
isNumber
et le constructeur deNumber
isFunction
.32 lignes
Essayez-le en ligne!
Cela fonctionne essentiellement
qui utilise la structure IIFE . Le bonus supplémentaire est que nous pouvons séparer certaines parties du corps de la fonction pour réduire le nombre de lignes.
24 lignes
Essayez-le en ligne!
Version en ligne:
Puisque tout ce que nous voulons, c'est renvoyer une chaîne, nous pouvons nous en sortir avec une méthode de chaîne liée à une chaîne. En utilisant
trim
, nous pouvons également quitter en toute sécurité une nouvelle ligne de départ.la source