array & other_array 返回数组和其他数组之间的匹配元素并删除任何重复项。您可以创建一个布尔测试,通过将一个数组的唯一元素与两个组合数组的相交元素进行比较,来查看一个数组的所有元素是否都在另一个数组中。
a = [1,2,3,4,5]
b = [2,3,4,5]
c = [4,5,6,7]
# check if all items in one array are in another array
def all_items_in_array?(original_array, test_array)
test_array.uniq == original_array & test_array
end
此方法将返回一个布尔值
all_items_in_array?(a,b) # true
all_items_in_array?(a,c) # false
all_items_in_array?(b,c) # false
并进行重复的布尔检查
def all_items_including_duplicates_in_array?(original_array, test_array)
original_grouped = original_array.group_by{|item| item}.values
test_grouped = test_array.group_by{|item| item}.values
test_grouped == original_grouped & test_grouped
end