Ответ 1
Использование набора пересечений (Array #: &):
(myarray & ["val1", "val2", "val3", "val4"]).present?
Вы также можете выполнить цикл (any?
будет останавливаться при первом вхождении):
myarray.any? { |x| ["val1", "val2", "val3", "val4"].include?(x) }
Это нормально для небольших массивов, в общем случае лучше иметь предикаты O (1):
values = ["val1", "val2", "val3", "val4"].to_set
myarray.any? { |x| values.include?(x) }
С Ruby >= 2.1 используйте Set # intersect:
myarray.to_set.intersect?(values.to_set)