【问题标题】:Ruby append string to each element in an arrayRuby 将字符串附加到数组中的每个元素
【发布时间】:2014-08-08 04:00:31
【问题描述】:

我正在开发分析 ruby​​ api 客户端。拨打电话时,我将参数发送为

dimensions = ["ga:hostName", "pagePath"]
metrics = ["pageValue", "ga:pageviews"]
.call_analytics(dimensions, metrics)

即使用户在传递参数时没有输入“ga:”,代码也应该在参数中附加“ga:”。

我是这样做的。

dimensions = dimensions.map{|a| ("ga:" + a.split(":").last).split}.flatten
metrics = metrics.map{|a| ("ga:" + a.split(":").last).split}.flatten

有没有更好的方法?

【问题讨论】:

  • last) 后面的split 是什么意思?
  • @sawa:我想将它转换回数组。这就是我使用拆分的原因

标签: ruby-on-rails ruby google-analytics ruby-on-rails-3.2


【解决方案1】:
["ga:hostName", "pagePath"]
.map{|s| s.sub(/\A(?!ga:)/, "ga:")}
#=> ["ga:hostName", "ga:pagePath"]

["pageValue", "ga:pageviews"]
.map{|s| s.sub(/\A(?!ga:)/, "ga:")}
#=> ["ga:pageValue", "ga:pageviews"]

["ga:hostName", "pagePath"]
.map{|s| s.start_with?("ga:") ? s : s.prepend("ga:")}
#=> ["ga:hostName", "ga:pagePath"]

["pageValue", "ga:pageviews"]
.map{|s| s.start_with?("ga:") ? s : s.prepend("ga:")}
#=> ["ga:pageValue", "ga:pageviews"]

【讨论】:

  • 我更喜欢使用map!
  • 这会将字符串附加到“原始”数组。如果我想追加一个字符串,并将结果存储到一个新数组中,并保留原始数组怎么办?
猜你喜欢
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 2018-05-27
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多