20 byte
Để tham khảo, đây là phiên bản gốc không có khoảng trắng và không đặt tên hàm:
n=>n>0?n<255?n:255:0
Hãy thử trực tuyến!
19 byte
Chúng ta có thể lưu một byte bằng cách đảo ngược logic của các thử nghiệm ternary và sử dụng n>>8
để kiểm tra xem n có lớn hơn 255 . Do hoạt động theo chiều bit, tuy nhiên điều này sẽ thất bại trong n ≥ 232 .
n=>n<0?0:n>>8?255:n
Hãy thử trực tuyến!
19 byte
Cái này trả về fa l s e thay vì 0 nhưng hoạt động với n ≥ 232 .
n=>n>255?255:n>0&&n
Hãy thử trực tuyến!
18 byte
Bằng cách kết hợp cả hai phiên bản trên, chúng tôi kết thúc với một chức năng phù hợp với 256 - 232< N < 232fa l s en < 0
n=>n>>8?n>0&&255:n
Hãy thử trực tuyến!
Đã bình luận
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
(Đây là bản sửa đổi cố định của mã được đề xuất bởi @ValueInk trong các nhận xét.)
17 byte
- 224< N ≤ 224
n=>n>>8?-n>>>24:n
Hãy thử trực tuyến!
Đã bình luận
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