对数组进行切片时,我们可以使用
2.0.0p247 :021 > arr = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
2.0.0p247 :022 > arr.each_slice(3).to_a
=> [[1, 2, 3], [4, 5]]
2.0.0p247 :034 > arr # does not change array
=> [1, 2, 3, 4, 5]
我只想取分片数组的第一部分,所以我用了下面的方法
2.0.0p247 :029 > arr = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
2.0.0p247 :030 > arr[0..2]
=> [1, 2, 3]
2.0.0p247 :031 > arr # does not change array
=> [1, 2, 3, 4, 5]
但是它返回一个新的数组,我想这样做,我可以在同一个数组中取数组的一部分,而不创建一个新的数组。在Ruby中,有一些方法可以改变同一个数组,方法是把一个'!'符号作为- sort!,reject!等
有没有办法做到这一点?
2条答案
按热度按时间cld4siwp1#
给定
若要传回
array=[1,2,3]
,您可以:或者
...或使用其他array methods号。
jv2fixgn2#
您是指ruby文档中的
slice!
吗?: