使用.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)