【发布时间】:2013-11-25 03:21:45
【问题描述】:
我有一些在代码前面生成的不同长度的数组,由有序对的子数组组成。如果存在不止一对,则输出为 Array of Arrays。如果只有一对,则输出为单个数组。
什么是转换输出的简单、一致的方法,使其始终处于一个递归级别,而无需编写过于狭窄的内容来测试确切的发生情况?现在我有:
output_array = [7, 5]
output_array = output_array.flatten.each_slice(2).to_a
=> [[7, 5]]
output_array = [[7, 5], [6, 2]]
output_array = output_array.flatten.each_slice(2).to_a
=> [[7, 5], [6, 2]]
【问题讨论】:
-
你所拥有的:
flatten.each_slice(2).to_a我也会这样做。 -
我要感谢负责提升我之前评论的人。不幸的是,我的建议是不正确的。应该是:
output_array = (output_array.first.is_a? Array) ? output_array : [output_array] -
是吗?不过,我可以在这里保证
output_array是一个数组。 -
是的,但问题是
output_array的元素本身是不是数组。