Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if each word in an array contains a substring and reject those in Ruby on Rails?

a = ["SUPER", "SOME_VALID", "ROME_INVALID", "SUPER_GOOD"]
a = a.reject { |x| x.in? ["GOOD", "VALID"]}
#=> ["SUPER", "SOME_VALID", "ROME_INVALID", "SUPER_GOOD"]

I don't want words that contain substring VALID or GOOD.

Output should be ["SUPER"] only.

like image 223
sofs1 Avatar asked Dec 14 '25 03:12

sofs1


2 Answers

grep_v would work:

a = ["SUPER", "SOME_VALID", "ROME_INVALID", "SUPER_GOOD"]
a = a.grep_v(/GOOD|VALID/)
#=> ["SUPER"]
like image 84
Stefan Avatar answered Dec 16 '25 18:12

Stefan


You could say this:

a = a.reject { |x| x.include?("GOOD") || x.include?("VALID")}
like image 43
harpocrates Avatar answered Dec 16 '25 18:12

harpocrates