2012-06-10 17 views
10

entiendo cómo definir un rango de matriz en CoffeeScriptEncontrar un rango de CoffeeScript

lng[1..10] 

Sin embargo, si tengo

data = 10 

¿Cuál es la mejor forma de encontrar si 10 está dentro de un rango de 1 y 11?

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

Respuesta

18

No hay "entre" palabra clave, pero se puede utilizar una normal de gama-gama:

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

Pero eso es un poco de una exageración, por lo que en casos sencillos Yo recomendaría una normalidad Comparación:

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

eso es genial, ¿pensé en hacer eso por no sé si hubo una llamada de Ruby de entre? - ¡¡Gracias!! –

+1

+1, con operadores de comparación encadenados en CoffeeScript se vuelve muy legible = D – epidemian

2

Si no le importa contaminar los prototipos nativos, se puede añadir un método between a los objetos Number:

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

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

Aunque yo personalmente no lo usaría. if 1 <= something <= 11 es más directo y todos lo entenderán. El método between, en cambio, debe buscarse si quiere saber qué hace (o tendría que adivinar), y creo que no agrega mucho.

Cuestiones relacionadas