如何将每两个数组值转换为ruby中自己的数组?

时间:2013-02-17 08:23:29

标签: ruby arrays

我有一个结构[a, [b], c, [d], ...]的数组,例如:

array = [0, [1], 2, [1]]

我需要:

[[0, 1], [2, 1]]

我该怎么办? :P

更新

我想知道如何处理这个数组

array = [0, [], 1, [], 2, []]

[[0, 1], [2, 1]]

即删除空的并合并如上所示。

谢谢:)

2 个答案:

答案 0 :(得分:2)

array.flatten.each_slice(2).to_a

答案 1 :(得分:2)

我写道:

array.each_slice(2).map { |x, ys| [x, ys.first] }
#=> [[0, 1], [2, 1]]

请注意,你也可以写map { |x, (y)| [x, y] }虽然它肯定是一个神秘的解包。