如何在Array中将每个X字符数量连接在一起 - Ruby

时间:2014-08-20 21:25:08

标签: ruby

如果我想在数组中将每X个字母加在一起,我该如何实现? 在这种情况下,我想将每两个字母加在一起

 Input: array = ["b", "i", "e", "t", "r", "o"]   
 Output: array = ["bi", "et", "ro"] 

2 个答案:

答案 0 :(得分:3)

each_slice (docs)

arr = 'bietro'.split ''

# grab each slice of 2 elements
p arr.each_slice(2).to_a
  #=> [["b", "i"], ["e", "t"], ["r", "o"]]

# map `join' over each of the slices
p arr.each_slice(2).map(&:join)
  #=> ["bi", "et", "ro"]

答案 1 :(得分:0)

@Doorknow展示了最好的方式,但这里有两个(在很多很多)其他方式:

def bunch_em(arr,n)
  ((arr.size+n-1)/n).times.map { |i| arr.slice(i*n,n).join }
end

arr = ["b", "i", "e", "t", "r", "o"] 
bunch_em(arr,2) #=> ["bi", "et", "ro"]