Es gibt eine Site namens "Return True to Win" mit interessanten Aufgaben für Javascript-Programmierer. Das Ziel ist es, Argumente für eine bestimmte Funktion zu finden, die die Rückgabe von true erzwingen.
Folgendes ist eine der Aufgaben:
function total(x) {
return (x < x) && (x == x) && (x > x);
}
Die Benutzer müssen Schnipsel für den Wert finden x
, die bewirken, dass die Funktion true zurückgibt. Um Snippets zu testen, rufen Sie die Funktion mit Ihrem Snippet als Parameter auf (dh total(<snippet>)
).
Ich habe eine Lösung mit 22 Zeichen gefunden:
{valueOf:_=>n++%3},n=0
Einige Leute fanden die Lösung in 21 Zeichen. Ich kann diese Lösung nicht herausfinden. Was ist die Lösung in 21 Zeichen?
code-golf
tips
javascript
Oleg
quelle
quelle
{valueOf:Math.random}
arbeitet von Zeit zu Zeit ... aber ich vermute, dass dies gegen eine Regel verstoßen würde ... (oder vielleicht auch nicht?)Antworten:
21 Zeichen
Mein ursprünglicher Witz, der abgelehnt und zum Löschen vorgeschlagen wurde:
11 Zeichen :)
Prüfung:
quelle
function total(x) { ... } total(<insert here>)
und das Ergebnis destotal()
Anrufs zutrue
<insert here>
->0),(true
:)0)||(true
. Keine der beiden Arbeiten funktioniert, und jetzt bin ich total verwirrt, weil es eine andere Ebene gibt, auf der Sie0);(!0
etwas Ähnliches tun oder tun müssen ...Betrügerische Antwort
Ich habe es bereits in den Kommentaren erwähnt, aber es wurde nicht getestet. Ist das jetzt. Sie müssen es so lange einreichen, bis es funktioniert.
Demo
quelle
x == x
wahr wurde, wenn x jedes Mal zufällig ausgewählt wird.valueOf
nicht aufgerufen wird, wenn der Gleichheitstest verarbeitet wird. Auf der anderen Seite erwarten Vergleichsoperatoren primitive Werte, dievalueOf
aufgerufen werden müssen. Hier ist ein Test , der das zeigt.