2012-06-10 30 views
10

Tôi hiểu làm thế nào để xác định một phạm vi mảng trong CoffeeScriptTìm một cấp ở CoffeeScript

lng[1..10] 

Tuy nhiên nếu tôi có

data = 10 

gì là cách tốt nhất để tìm thấy nếu 10 là trong một phạm vi của 1 và 11?

if data is between(1..11) 
    return true 

Trả lời

18

Không có "giữa" từ khóa, nhưng bạn có thể sử dụng một bình thường mảng tầm:

if data in [1..11] 
    alert 'yay' 

Nhưng đó là một chút của một overkill, vì vậy trong trường hợp đơn giản, tôi muốn đề nghị một bình thường so sánh:

if 1 <= data <= 11 
    alert 'yay' 
+0

thats great, tôi đã nghĩ đến việc đó bằng cách không biết nếu có một cuộc gọi ruby ​​giống như giữa? - cảm ơn!! –

+1

+1, với các toán tử so sánh xích trong CoffeeScript nó trở nên rất dễ đọc = D – epidemian

2

Nếu bạn không nhớ gây ô nhiễm nguyên mẫu bản địa, bạn có thể thêm một phương pháp between đến Number đối tượng:

Number::between = (min, max) -> 
    min <= this <= max 

if 10.between(1, 11) 
    alert 'yay' 

Mặc dù cá nhân tôi sẽ không sử dụng nó. if 1 <= something <= 11 trực tiếp hơn và mọi người sẽ hiểu nó. Phương pháp between, thay vào đó, phải được tìm kiếm nếu bạn muốn biết nó làm gì (hoặc bạn sẽ phải đoán), và tôi nghĩ rằng nó không thêm nhiều.

Các vấn đề liên quan