我想知道是否有更好的方法来测试哈希是否有来自数组的任何键。我想用它这样的东西:
keys = %w[k1 k2 k5 k6]
none = true if hash.key?(keys)
或者我将不得不循环这个?
答案 0 :(得分:65)
无需循环:
(hash.keys & keys).any? # => true
说明:
.keys
将散列中的所有键作为数组返回。 &
与两个数组相交,返回两个数组中存在的任何对象。最后,.any?
检查数组是否有任何值。
答案 1 :(得分:6)
keys.any? { |i| hash.has_key? i }