我尝试删除包含5
的任何值,因此在这种情况下,5
,15
,25
和53
应该全部被删除。
尝试了以下并在irb中玩过但似乎无法让它工作
n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 25, 53]
n.delete_if { |a| a =~ /5*/ }
答案 0 :(得分:4)
您正在寻找Array#reject
:
n.reject { |number| number.to_s =~ /5/ }
#=> [1, 2, 3, 4, 6, 7, 8, 9]
答案 1 :(得分:4)
Ruby 2.4附带Integer#digits
:
n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 25, 53]
n.reject { |i| i.digits.include? 5 }
#=> [1, 2, 3, 4, 6, 7, 8, 9]
答案 2 :(得分:2)
使用Array#delete_if也可以:
n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 25, 53]
n.delete_if { |a| a.to_s =~ /5/ }
# => [1, 2, 3, 4, 6, 7, 8, 9]