Geo*_*a.b 2 ruby ruby-on-rails
我有一个形式为"award.x_initial_value.currency"的字符串,我希望将除了前导"x_"之外的所有内容都归结为所以我得到了一个结果:"award.x_initialValue.currency".我目前的实施是:
a = "award.x_initial_value.currency".split(".")
b = a.map{|s| s.slice!("x_")}
a.map!{|s| s.camelize(:lower)}
a.zip(b).map!{|x, y| x.prepend(y.to_s)}
Run Code Online (Sandbox Code Playgroud)
我对它不是很满意,因为它既不快也不优雅,性能是关键,因为它将应用于大量数据.我也谷歌搜索但找不到任何东西.
是否有更快/更好的方法来实现这一目标?
由于"性能是关键",您可以跳过开销,ActiveSupport::Inflector并使用正则表达式自己执行"camelization":
a = "award.x_initial_value.currency"
a.gsub(/(?<!\bx)_(\w)/) { $1.capitalize }
#=> "award.x_initialValue.currency"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |