我有以下数组:
a = ['sda','sdb','sdc','sdd']
现在我想循环访问这些条目,但总是使用两个元素.我现在就这样做:
while b = a.shift(2) # b is now ['sda','sdb'] or ['sdc','sdd'] end
这感觉到某种错误,有没有更好的办法呢?有没有办法轻松获得像[[‘sda’,’sdb’],[‘sdc’,’sdd’]]的东西?
我读了http://www.ruby-doc.org/core-1.9.3/Array.html,但我没有找到有用的东西…
解决方法
您可能需要查看
Enumerable
,而这是包含在Array中.
你想要的方法是Enumerable#each_slice
,它从可枚举的元素数量中反复得到(或者如果最后没有那么多的元素):
a = ['sda','sdd'] a.each_slice(2) do |b| p b end
产量:
$ruby slices.rb ["sda","sdb"] ["sdc","sdd"] $