我试图从散列中删除数组中的元素,并且数组构成散列中“键”的一部分。这是一个例子。
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 :(得分: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)}