在数组中查找常量列表

时间:2014-02-19 06:10:59

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我有一个常量列表:

FRUITS = [MANGO, BANANA, ORANGE, GUAVA]

和数组是此常量的超集,如

EDIBLE_ITEMS = [APPLE, CORN, MANGO, RICE, ORANGE, PAPAYA, LITCHI, RICE]

所以现在我需要测试FRUITS中的任何元素是否与EDIBLE_ITEMS匹配然后调用函数。

任何帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:3)

使用Array#&

FRUITS = ['MANGO', 'BANANA', 'ORANGE', 'GUAVA']
EDIBLE_ITEMS = ['APPLE', 'CORN', 'MANGO', 'RICE', 'ORANGE', 'PAPAYA', 'LITCHI', 'RICE']
(FRUITS & EDIBLE_ITEMS).any?
# => true

答案 1 :(得分:0)

使用Enumerable#any?执行以下操作:

EDIBLE_ITEMS = %w[APPLE, CORN, MANGO, RICE, ORANGE, PAPAYA, LITCHI, RICE]
FRUITS = %w[MANGO, BANANA, ORANGE, GUAVA]
FRUITS.any? { |item| EDIBLE_ITEMS.include? item } # => true