2017-02-05 39 views
0

我想從散列中刪除數組中的元素,並且該數組構成散列中「鍵」的一部分。這裏是一個例子。刪除從散列數組中的特定鍵集

hash = {'a' = 1, 'b' = 2, 'c' =3, 'd' = 4} 

arr = ["a","d"] #Now I need to remove the elements from this array from the above hash 

Resultant hash should be as below 

new_hash = {'b' = 2,'c' =3} 

這是我嘗試過遺憾的是它似乎不工作

for i in 0..hash.length-1 

    arr.each do |key_to_del| 

    hash.delete key_to_del unless h.nil? 

    end 

end 

回答

0

你的散列是不正確的格式。它應該是這樣的。

hash={"a"=>1, "b"=>2, "c"=>3, "d"=>4} 
arr=["a","d"] 

解決方案1 ​​

hash.reject! {|k, v| arr.include? k } 

解決方案2

arr.each{|v| hash.delete(v)} 
+0

非常感謝和它的工作就像一個魅力! – TGR