有没有更好的方法来判断一个ruby哈希是否在另一个内?

Mik*_* Li 4 ruby hash

例如hash ais {:name=>'mike',:age=>27,:gender=>'male'} 和hash bis{:name=>'mike'}

我想知道是否有更好的方法来判断b散列是否在a散列内,而不是逐个比较每个键?

我找到了一种方法来做到这一点,这比比较键更有效吗?

a.merge(B)==一个

d11*_*wtq 5

我喜欢计算交叉点的方法,这是你想要做的:

a = { :a => :b, :c => :d }
b = { :e => :f, :a => :b }
c = { :a => :f, :e => :c }

(a.to_a & b.to_a).any? # => true
(a.to_a & c.to_a).any? # => false
Run Code Online (Sandbox Code Playgroud)