20 byte
Sebagai referensi, ini adalah versi asli tanpa spasi dan tanpa penamaan fungsi:
n=>n>0?n<255?n:255:0
Cobalah online!
19 byte
Kita dapat menyimpan byte dengan membalik logika tes terner dan menggunakan n>>8
untuk menguji apakah n lebih besar dari 255 . Karena operasi bitwise, namun ini akan gagal untuk n ≥ 232 .
n=>n<0?0:n>>8?255:n
Cobalah online!
19 byte
Yang ini mengembalikan fa l s e bukannya 0 tetapi bekerja untuk n≥232 .
n=>n>255?255:n>0&&n
Cobalah online!
18 byte
Dengan menggabungkan kedua versi di atas, kita berakhir dengan fungsi yang bekerja untuk 256−232≤n<232 dan mengembalikan false untuk n<0 .
n=>n>>8?n>0&&255:n
Cobalah online!
Berkomentar
n => // n = input number
n >> 8 ? // if n is greater than 255 or n is negative:
n > 0 && // return false if n is negative
255 // or 255 otherwise
: // else:
n // return n unchanged
(Ini adalah revisi tetap dari kode yang diusulkan oleh @ValueInk di komentar.)
17 byte
−224<n≤224
n=>n>>8?-n>>>24:n
Cobalah online!
Berkomentar
n => // n = input number
n >> 8 ? // if n is greater than 255 or n is negative:
-n >>> 24 // non-arithmetic right-shift of -n by 24 positions
: // else:
n // return n unchanged