我在起诉Ruby 2.3。当我想按值从数组中删除字符串元素时,我可以
2.3.0 :005 > a.delete("AB")
=> "AB"
但是如何以不区分大小写的方式删除元素?也就是说,我该如何制作
a.delete(“ab”)
表现得像
a.delete(“AB”)
?
答案 0 :(得分:1)
a.reject!{|str| str.casecmp("AB").zero?}
casecomp
是String#<=>
的不区分大小写的版本。
a.reject!{|str| str.casecmp("ab").zero?}
的行为完全相同。
答案 1 :(得分:0)
您可以改为使用Array#reject
,如下所示:
bad_string_downcase = bad_string.downcase
a.reject! { |element| element.downcase == bad_string_downcase }
或使用正则表达式:
a.reject! { |element| element.match %r{^#{bad_string}$}i }
答案 2 :(得分:0)
尝试delete_if
a.delete_if { |s| s.downcase == 'ab' }