Ruby 按字符联接数组?

Ruby 按字符联接数组?,ruby,arrays,Ruby,Arrays,如果我有一个数组: array = ["a","b","c","d","e","f"] 我想把它分成2个数组,然后展平它们,但在展平它们之前,添加一个像a/这样的字符,我该怎么做 我尝试了以下方法,即在每个子数组之后而不是在切片的第n个值之后进行连接: array.each_slice(5).map.join("/") 是否可以使用正则表达式,如在5次计数后\w?看起来您想要得到[a,b,c,/,d,e,f] (array.each_slice(3).inject([]) {|res, it

如果我有一个数组:

array = ["a","b","c","d","e","f"]
我想把它分成2个数组,然后展平它们,但在展平它们之前,添加一个像a/这样的字符,我该怎么做

我尝试了以下方法,即在每个子数组之后而不是在切片的第n个值之后进行连接:

array.each_slice(5).map.join("/")

是否可以使用正则表达式,如在5次计数后\w?

看起来您想要得到[a,b,c,/,d,e,f]

(array.each_slice(3).inject([]) {|res, item| res << '/' unless res.empty?; res << item }).flatten
# => ["a", "b", "c", "/", "d", "e", "f"]

结果应该是什么样的?将它们展平?你这是什么意思?正如Ruby方法一样。flatte应用于嵌套数组,而您似乎没有。一旦我将其分割为多个数组,它将是一个数组数组,我可以将其展平。使用array=[aa,bb,cc,dd],您的代码将返回[a,a,b,/,b,c,c,/,d,d]。看起来这不是OP想要的。
(array.each_slice(3).inject([]) {|res, item| res << '/' unless res.empty?; res << item }).flatten
# => ["a", "b", "c", "/", "d", "e", "f"]
array.join.gsub(/(\w{3})/, '\1/').chomp('/').split('')