Stellen Sie sich diese kurze Funktion vor, um eine Zahl zwischen 0 und 255 zu klemmen:
c = n => n > 0 ? n < 255 ? n : 255 : 0
Ist dies die kürzest mögliche Version einer Clamp-Funktion mit JavaScript (ohne ES.Next-Features)?
PS: Ich bin mir nicht sicher, ob es relevant ist, aber die 0 und 255 sind nicht zufällig. Die Idee ist, eine Zahl als 8-Bit-Ganzzahl ohne Vorzeichen festzuhalten.
code-golf
math
tips
javascript
Ricardo Amaral
quelle
quelle
[0,n,255]
, das mittlere Element zu sortieren und zu entnehmen - könnte das kürzer sein?sort()
Methode standardmäßig einen lexikografischen Vergleich, sodass ein expliziter Rückruf erforderlich wäre. (So ähnlich .)Antworten:
20 Bytes
Als Referenz ist dies die Originalversion ohne Leerzeichen und ohne Benennung der Funktion:
Probieren Sie es online!
19 Bytes
Wir können ein Byte sparen, indem wir die Logik der ternären Tests invertieren undn größer als 255 . Aufgrund der bitweisen Operation schlägt dies jedoch für n ≥ 232 fehl .
n>>8
testen, obProbieren Sie es online!
19 Bytes
Probieren Sie es online!
18 Bytes
Probieren Sie es online!
Kommentiert
(Dies ist eine feste Überarbeitung des von @ValueInk in den Kommentaren vorgeschlagenen Codes .)
17 Bytes
Probieren Sie es online!
Kommentiert
quelle
n=>n>>8?255:n>0&&n
für 18 Bytes , dafalse
werden dazu gezwungen kann ,0
und dies wird alle negativen Zahlen machen auswerten zufalse
n>>8