Ich versuche, eine Funktion über mehrere Zeilen zu erstellen.
Parameter der Herausforderung:
- Funktion gibt 'barbarian' zurück
- Nur 2 Zeichen pro Zeile
- Maximal 40 Zeilen. Ich versuche immer wieder, meine Funktion mit einem fetten Pfeil zu deklarieren, aber fette Pfeile scheinen nicht zu funktionieren, wenn Sie sie nicht verbunden haben.
Quelle der Herausforderung: https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world
Meine aktuelle Arbeit:
f=
(
)=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'
Dies funktioniert, aber das ') =>' ist 3 Zeichen lang. Ich möchte wirklich nur wissen, wie es möglich ist, die Erstellung einer Funktion überhaupt auszudehnen. Ich kann nirgendwo Informationen darüber finden, da es offensichtlich nicht sehr praktisch ist.
code-challenge
restricted-source
tips
source-layout
javascript
theNewfelll
quelle
quelle
Antworten:
Hier ist eine 38-Zeilen-Lösung:
Mit dem
Function
Konstruktor wird eine Funktion erstellt , auf die[].map.constructor
über die tiefgestellte Notation ([]['map']['constructor']
) zugegriffen wird . Dies ist die Methode, mit der JSFuck Funktionen erstellt.quelle
[]['map']['constructor']
statt zu[]['sum']['constructor']
?35 Zeilen
Probieren Sie es online aus!
Verwendet die Tatsache, dass
0
es sich um eine Zahl handelt, den Konstruktor von0
isNumber
und den Konstruktor vonNumber
isFunction
.32 Zeilen
Probieren Sie es online aus!
Dies läuft im Wesentlichen
welches die IIFE Struktur verwendet . Ein zusätzlicher Bonus ist, dass wir einige Teile im Funktionskörper unterbrechen können, um die Zeilenanzahl zu verringern.
24 Zeilen
Probieren Sie es online aus!
Inline-Version:
Da wir nur einen String zurückgeben möchten, können wir mit einer an einen String gebundenen String-Methode davonkommen. Durch die Verwendung
trim
können wir auch sicher eine neue Anfangszeile hinterlassen.quelle