首页 > 解决方案 > 哈希删除项目键和值

问题描述

我有以下哈希:

{
  "itens":
  [
     {"year": "2018", "data": "id": 1},
     {"year": "2018", "data": "id": 2}
  ]
}

我需要在哈希数组中插入另一个元素。但我不能有重复的条目。

所以我必须插入这一行:

{"year": "2019", "data": "id": 2}

但首先我需要删除以前的:

{"year": "2018", "data": "id": 2}

如何遍历哈希、查找键和值、删除和添加新条目?

谢谢。

标签: ruby

解决方案


我假设你的意思是这样的哈希:

 hash = { 
   items: [
     {year: 2018, data: { id: 1 }},
     {year: 2018, data: { id: 2 }}
   ]
 }

例如,您可以通过以下方式更改它:

item = {year: 2019, data: { id: 2 }}
hash[:items].delete_if do |stored_hash|
    stored_hash[:data][:id] == item[:data][:id]
end
hash[:items] << item

这会导致:

hash

=> {:items=>[{:year=>2018, :data=>{:id=>1}}, {:year=>2019, :data=>{:id=>2}}]}

我希望这回答了你的问题...


推荐阅读