我有一个哈希
h = {a=> 1, b=> 2, c=> 3}
和一个数组
a = [a, b]
是否可以使用
h.select {|k,v| k == array_here?}
从哈希中存在的数组中选择所有元素吗?
我找到了解决方案
h.select {|k,v| a.include?(k) }
答案 0 :(得分:2)
你要倒退了。试试这个:
a.select {|e| h.has_key? e }
答案 1 :(得分:1)
你可以通过以下方式实现这一目标:
a.each do |arr_elem|
new_hash[arr_elem] = h[arr_elem] unless h[arr_elem].nil?
end
答案 2 :(得分:1)
如果你真的想要你所要求的(即数组中作为哈希键出现的元素):
h = {:a => 1, :b => 2, :c => 3}
a = [:a, :b, :d]
a & h.keys
答案 3 :(得分:0)
一个可能且最简单的答案是:
h.select {|k,v| a.include?(k) }