array&other_arrayは、配列と他の配列の間で一致する要素を返し、重複を削除します。ブールテストを作成して、1つの配列の一意の要素を、2つの結合された配列の交差する要素と比較することにより、1つの配列のすべての要素が別の配列にあるかどうかを確認できます。
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