如果我有一个数组:
array = ["a","b","c","d","e","f"]
我想将它分成2个数组,然后将它们展平,但在我展平它们之前,添加一个像/
这样的字符,我该怎么做?
我尝试过以下连接后,每个子数组之后不在切片的第n个值之后:
array.each_slice(5).map.join("/")
是否可以使用正则表达式,如在\w
的5个计数之后?
答案 0 :(得分:2)
array.each_slice(3).map{|x| x.unshift('/') }.flatten[1..-1]
# => ["a", "b", "c", "/", "d", "e", "f"]
答案 1 :(得分:1)
看起来你想得到[“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"]
答案 2 :(得分:0)
array.join.gsub(/(\w{3})/, '\1/').chomp('/').split('')