我有一個哈希使用哈希選擇一個數組
h = {a=> 1, b=> 2, c=> 3}
和陣列
a = [a, b]
是否有可能使用
h.select {|k,v| k == array_here?}
要選擇從陣列中的所有元素存在於散列?
我找到了解決辦法
h.select {|k,v| a.include?(k) }
我有一個哈希使用哈希選擇一個數組
h = {a=> 1, b=> 2, c=> 3}
和陣列
a = [a, b]
是否有可能使用
h.select {|k,v| k == array_here?}
要選擇從陣列中的所有元素存在於散列?
我找到了解決辦法
h.select {|k,v| a.include?(k) }
一個可能的和最簡單的答案是:
h.select {|k,v| a.include?(k) }
你可以做到這一點的東西,如:
a.each do |arr_elem|
new_hash[arr_elem] = h[arr_elem] unless h[arr_elem].nil?
end
如果你真的想你問什麼(即在散列中呈現爲鍵的數組的元素):
h = {:a => 1, :b => 2, :c => 3}
a = [:a, :b, :d]
a & h.keys
您應該添加解決方案作爲答案並接受它 –
您正在詢問_「陣列中存在於散列中的所有元素_」,而是希望_「散列中存在其鍵中的所有元素」_ _ 。這個問題具有誤導性,並導致錯誤的答案。 –
我覺得是一樣的。來自陣列中存在於散列中的所有元素與散列中存在於該數組中的所有元素具有相同的含義! – glarkou