从散列中删除作为数组的特定键集

时间:2017-02-05 17:17:39

标签: ruby-on-rails

我试图从散列中删除数组中的元素,并且数组构成散列中“键”的一部分。这是一个例子。

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

1 个答案:

答案 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)}