使用.include检查数组中的多个项目? – Ruby初学者

有没有更好的方式来写这个:

if myarray.include? 'val1' || myarray.include? 'val2' || myarray.include? 'val3' || myarray.include? 'val4' 

使用set intersection( 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)