Как выбрать элементы массива в заданном диапазоне в Ruby? - PullRequest
24 голосов
/ 19 августа 2010

У меня есть массив, скажем, 500 элементов. Я знаю, что могу выбрать первые 100, выполнив .first(100), мой вопрос: как выбрать элементы от 100 до 200?

Ответы [ 5 ]

45 голосов
/ 19 августа 2010

Вы можете использовать диапазоны в индексе массива:

arr[100..200]
13 голосов
/ 19 августа 2010

Вы можете сделать это так:

array[100..200] # returns the elements in range 100..200
# or
array[100,100] # returns 100 elements from position 100

Подробнее

11 голосов
/ 20 августа 2010

Ответ dvcolgan верен, но, похоже, вы пытаетесь разбить свой массив на группы по 100. Если это так, для этого есть удобный встроенный метод:

nums = (1..500).to_a

nums.each_slice(100) do |slice|
  puts slice.size
end

# => 100, 100, 100, 100, 100
2 голосов
/ 19 августа 2010
sample_array = (1..500).to_a
elements_100_to_200 = sample_array[100..200]

Вы можете передать диапазон в качестве индекса массиву и получить подмассив с запрашиваемыми элементами из этого поддиапазона.

0 голосов
/ 19 августа 2010
new_array = old_array.first(200) - old_array.first(100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...