Ruby:配列に含まれる配列、任意の注文[複製
質問
この質問にはすでに答えがあります:
次のルビーコードがあるとします。
array_1 = ['a', 'b']
array_2 = ['a', 'b', 'c']
some_function(array_1, array_2) # => True
some_function(array_2, array_1) # => False
some_function(['a', 'b'], ['a', 'd']) # => False
some_function(['x', 'y'], array_2) # => False
私はほとんど探しています some_function
パラメーター2が含まれている場合にtrueを返すには すべて パラメーター1の要素の
解決
def f a,b
(a-b).empty?
end
他のヒント
前の投稿から、
def f a,b
(a-b).empty?
end
たとえば、あなたが期待する方法では機能しません。
a1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
a2 = [2, 3, 5, 9]
(a1-a2).empty? # returns true
でも、
a1-a2 # returns [1, 4, 6, 7, 8], not empty
したがって f
falseを返します。
1ライナーが必要な場合は、より正確なソリューションは次のとおりです。
def f a,b
a&b == b
end
a&b
両方にあるすべての要素を返します a
と b
次に、それがに等しいかどうかを確認します b
あいまいさのために:
def f a,b
(a&b == a) || (a&b == b)
end
def f a,b
tmp = a.map(|i| b.include?(i))
tmp.include?(false)
end
所属していません StackOverflow