Ruby:如何将数组的元素与前缀一起加入?

我有一个像这样的数组:

["marblecake", "also", "the", 1337] 

我想找回一个字符串,其中包含以某个指定字符串为前缀的数组的每个元素,然后由另一个指定的字符串连接在一起。 例如,

 ["marblecake", "also", "the", 1337].join_with_prefix("%", "__") 

应该导致

 # => %marblecake__%also__%the__%1337 

我怎么能这样做?

如果你的arrays在a那么这个单行将会这样做

 a.map { |k| "%#{k}" }.join("_") 

您可以轻松地将它放在您自己的函数中 – 甚至可以将它添加到Array类中,以便您可以在数组中调用它,就像在您的示例中一样。

注意’!’ map的版本( map! )会修改数组 – 也许不是你的意图。

虽然这是一个非常古老的问题,但我想补充一点:

 a.any? && "%".+(a.join("__%")) 

根据上述建议:

 class Array def join_with_prefix(prefix,separator) self.collect {|e| prefix.to_s + e }.join(separator) end end p ['ab','cd','ef'].join_with_prefix('%','__') 
  >'%ab __%cd __%ef“ 

我今天正在寻找解决方案。我发现了这个问题。这是我的解决方案。

 array = ["marblecake", "also", "the", 1337]; arrayString = '' array.each{|x| arrayString += "%" + x + "__"}