unity treehouse tracks team courses ruby-on-rails ruby

ruby-on-rails - tracks - treehouse courses



Compruebe si hay varios elementos en la matriz usando.include?-Ruby Beginner (2)

Crea tu propio método reutilizable:

class String def include_any?(array) array.any? {|i| self.include? i} end end

Uso

"a string with many words".include_any?(["a", "string"])

¿Hay una mejor manera de escribir esto?

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


Usando las intersecciones establecidas ( Array#:& ):

(myarray & ["val1", "val2", "val3", "val4"]).present?

También puede hacer un bucle ( any? detendrá en la primera aparición):

myarray.any? { |x| ["val1", "val2", "val3", "val4"].include?(x) }

Eso está bien para arreglos pequeños, en el caso general es mejor tener O (1) predicados:

values = ["val1", "val2", "val3", "val4"].to_set myarray.any? { |x| values.include?(x) }

Con Ruby> = 2.1, use Set#intersect :

myarray.to_set.intersect?(values.to_set)