一次加入2个元素

时间:2012-08-16 23:17:04

标签: ruby-on-rails ruby ruby-on-rails-3

在Ruby中从数组中加入2个2元素的最优雅方法是什么?

例如: 我想加入数组:

ar = ['1', '2', '3', '4', '5']

并获取

ar = [ '12', '34', '5' ]

感谢您的帮助

2 个答案:

答案 0 :(得分:7)

像往常一样,Enumerable是你的好朋友,希望让你的生活更轻松:

ar.each_slice(2).map(&:join)

唯一的技巧是使用无块形式的each_slice来获取一个可以map加入切片的枚举器。

答案 1 :(得分:1)

我不知道优雅,但这是我刚刚掀起的事情:

ar.each_slice(2).map { |x, y| "#{x}#{y}" }

你不一定要给each_slice一个块,它只返回一个枚举器。所以可以在其上调用map,将每个切片的两个部分传递给它,并返回一个漂亮的新数组。