Количество экземпляров значения в массиве в Ruby 1.8.6

Следующая строка работает нормально в рубине 1.8.7, а не в 1.8.6. Какую альтернативу я могу использовать в 1.8.6

x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.count(3)
=> 3

Поскольку счетчик не является методом в массиве в версии 1.8.6, я получаю эту ошибку. Есть ли аналогичный метод в этой версии?

Ответы

Ответ 1

Как общий совет: есть действительно классная backports библиотека от Marc-André Lafortune, которая пытается реализовать как можно больше новых функций Ruby 1.8.7, 1.8.8 (т.е. Кончик ветки 1_8 в репозитории Subversion), стандартные версии 1.9.1 и 1.9.2, а также некоторые методы выбора из ActiveSupport, насколько это возможно, в чистом, кросс-1.8-1.9-совместимом Рубин.

Итак, если вы просто делаете

require 'backports'

он превратит ваш Ruby 1.8.6, 1.8.7 или 1.9.1 как можно ближе к Ruby 1.9.2, как это возможно, не отбросив до C или не отменив обратную совместимость.

Отказ от ответственности: я на самом деле не использовал его сам, так как я не вижу смысла использовать устаревшую версию Ruby.

Ответ 2

x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.grep(3).size
#=> 3

Ответ 3

count = x.select {|e| e == 3}.size