【问题标题】:Ruby titleize is removing Hyphen, how to override?Ruby titleize 正在删除连字符,如何覆盖?
【发布时间】:2014-05-05 08:21:11
【问题描述】:
 q = ["2002-h2","2002-h1", "2000-h1", "2005-h2", "2000-h2", "2005-h1"]

 q.sort_by { |a| a }.collect{|u| u}

 => ["2000-h1", "2000-h2", "2002-h1", "2002-h2", "2005-h1", "2005-h2"]

当我使用 titleize 删除连字符符号时

 q.sort_by { |a| a }.collect{|u| u.titleize}

 => ["2000 H1", "2000 H2", "2002 H1", "2002 H2", "2005 H1", "2005 H2"]

我想要这种类型的

 => ["2000-H1", "2000-H2", "2002-H1", "2002-H2", "2005-H1", "2005-H2"]

我想对 q 个值进行排序

如何解决这个问题?

【问题讨论】:

  • 你为什么使用titleize而不是upcase?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2


【解决方案1】:

只有 1 个字母吗?那么就upcase?

[1] pry(main)> "2000-h1".upcase
=> "2000-H1"

【讨论】:

    【解决方案2】:

    您可以写得更短,因为.sort_by { |a| a } 返回的结果与.sort 相同,而.collect { |a| a.upcase } 返回的结果与.map(&:upcase) 相同

    q = ["2002-h2","2002-h1", "2000-h1", "2005-h2", "2000-h2", "2005-h1"]
    
    q.sort.map(&:upcase)
    
    #=> ["2000-H1", "2000-H2", "2002-H1", "2002-H2", "2005-H1", "2005-H2"]
    

    【讨论】:

      猜你喜欢
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多