Поиск диапазона в CoffeeScript

Я понимаю, как определить диапазон массивов в CoffeeScript

lng[1..10]

Однако, если у меня есть

data = 10

Какой лучший способ найти, если 10 находится в диапазоне от 1 до 11?

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

Ответ 1

Нет ключевого слова "между", но вы можете использовать обычный диапазон массивов:

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

Но это немного перебор, поэтому в простых случаях я бы рекомендовал нормальное сравнение:

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

Ответ 2

Если вы не против загрязнения собственных прототипов, вы можете добавить between метод к объектам Number:

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

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

Хотя я лично его не использовал. if 1 <= something <= 11 является более прямым, и все это поймут. Вместо этого метод between должен быть просмотрен, если вы хотите знать, что он делает (или вам нужно было догадаться), и я думаю, что он не добавляет этого.