Ruby比较2个具有键集的哈希数组

时间:2017-02-24 20:18:46

标签: arrays ruby hash

所以我有两个哈希数组,看起来像这样:

arr1 = [{:tag=>"ABC_0001", :bocount=>100, :bocreated=>"2017-02-24T14:57:39.549-05:00"},{:tag=>"ABC_0002", :bocount=>50, :bocreated=>"2017-02-24T14:57:41.156-05:00"},{:tag=>"ABC_0003", :bocount=>10, :bocreated=>"2017-02-24T14:57:42.903-05:00"},{:tag=>"ABC_0004", :bocount=>12, :bocreated=>"2017-02-24T14:57:44.156-05:00"}]

arr2 = [{:tag=>"ABC_0001", :bocount=>100, :bocreated=>"2017-01-24T14:57:39.549-05:00"},{:tag=>"ABC_0003", :bocount=>10, :bocreated=>"2017-01-24T14:57:42.903-05:00"},{:tag=>"ABC_0004", :bocount=>12, :bocreated=>"2017-01-24T14:57:44.156-05:00"},{:tag=>"ABC_0005", :bocount=>75, :bocreated=>"2017-01-24T14:57:41.156-05:00"}]

我需要做的是完全从这些数组中删除bocreated哈希值。我需要复制每个数组(得到那个),然后在新数组中删除所有bocreated哈希值。

我到处寻找,但似乎无法找到这一点。主要是关于删除某些值。

我试过了:

oi_newset.each do |h|
    h.delete("#{h[:bocreated]}")
end

但是当我输出数组时,那些哈希值仍在那里。

如果有人可以提供帮助,那就太棒了。

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个。

oi_newset.each do |h|
  h.delete(:bocreated)
end

您需要删除密钥。