如何在Ruby中选择给定范围内的数组元素?

deb*_*deb 26 ruby arrays

我有一个数组,让我们说,500个元素.我知道我可以选择前100个.first(100),我的问题是如何选择100到200的元素?

dav*_*gan 46

您可以在数组下标中使用范围:

arr[100..200]
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在 ruby​​ 中,带有两个点“..”的范围表示“包含”最后一个数字的范围,而三个点“...”则表示“不包括”。所以 `(1..4)` 是 1,2,3,4 而 `(1...4)` 是 1,2,3 (4认同)
  • 你也可以做负范围:arr [100 ..- 50]将通过第450个元素获得第100个元素,在500个元素数组的情况下. (3认同)

jig*_*fox 15

你可以这样做:

array[100..200] # returns the elements in range 100..200
# or
array[100,100] # returns 100 elements from position 100
Run Code Online (Sandbox Code Playgroud)

更多信息


Tod*_*ell 11

dvcolgan的答案是正确的,但听起来你可能试图将你的数组分成100个组.如果是这样的话,有一个方便的内置方法:

nums = (1..500).to_a

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

# => 100, 100, 100, 100, 100
Run Code Online (Sandbox Code Playgroud)