Joh*_*yde 1 ruby ruby-on-rails
我有一系列制造商,其中一些在其官方名称的开头使用"The".人们通过实际名称来引用它们,并select在"M"下查找名称,但它在"T"下面
例如莫里茨刺绣公司
我正在考虑获取每个名称,将其转换为数组.split(" ")并删除"the"(.delete("The"))然后再次加入,然后排序,但这似乎是错误的方法.
我正在考虑获取每个名称,将其转换为带有.split("")的数组并删除"the"(.delete("The"))然后再次加入,然后排序,但这似乎是错误的方式去做这个.
这被称为Schwartzian变换,它是ruby的sort_by的强大之处.
(无耻地窃取复制一些@ mudasobwa的代码)
input = ["The Moritz", "A Moritz", "The Embroidery Company"]
input.sort # => naive sort, ["A Moritz", "The Embroidery Company", "The Moritz"]
input.sort_by { |str| str.gsub(/\A(The|A)\s+/, '') } # sort without prepositions
# => ["The Embroidery Company", "The Moritz", "A Moritz"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |