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 + "__"}