ruby数组循环总是对

我有以下数组:

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', 'sdb', 'sdc', 'sdd'] a.each_slice(2) do |b| pb end 

产量:

 $ ruby slices.rb ["sda", "sdb"] ["sdc", "sdd"] $