ruby - Why is the OR operator used instead of AND operator in the select method? -


given hash of family members, keys title , array of names values, use ruby's built-in select method gather immediate family members' names new array.

# given  family = {  uncles: ["bob", "joe", "steve"],             sisters: ["jane", "jill", "beth"],             brothers: ["frank","rob","david"],             aunts: ["mary","sally","susan"]           } 

the solution is:

immediate_family = family.select |k, v|   k == :sisters || k == :brothers end  arr = immediate_family.values.flatten  p arr 

why || operator used instead of && operator in select method? when run &&, select method returns empty array.

the || , && operators mean or , and respectively in programming languages.

the expression:

family.select |k, v|   k == :sisters || k == :brothers end 

would translate "select elements of familiy hash key :sisters or :brothers". @ursus points out, in case doesn't make sense k equal :brother , :sister @ same time.


Comments