将ruby数组转换为连续对的数组

时间:2010-08-13 14:25:31

标签: ruby arrays

将ruby数组转换为连续元素对数组的最简单方法是什么?

我的意思是:

x = [:a, :b, :c, :d]

预期结果:

y #=> [[:a, :b], [:c, :d]]

2 个答案:

答案 0 :(得分:73)

使用Enumerable#each_slice

y = x.each_slice(2).to_a
#=> [[:a, :b], [:c, :d]]

[0, 1, 2, 3, 4, 5].each_slice(2).to_a
#=> [[0, 1], [2, 3], [4, 5]]

答案 1 :(得分:2)

Hash[*[:a, :b, :c, :d]].to_a