ruby - 哈希删除项目键和值
问题描述
我有以下哈希:
{
"itens":
[
{"year": "2018", "data": "id": 1},
{"year": "2018", "data": "id": 2}
]
}
我需要在哈希数组中插入另一个元素。但我不能有重复的条目。
所以我必须插入这一行:
{"year": "2019", "data": "id": 2}
但首先我需要删除以前的:
{"year": "2018", "data": "id": 2}
如何遍历哈希、查找键和值、删除和添加新条目?
谢谢。
解决方案
我假设你的意思是这样的哈希:
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}}]}
我希望这回答了你的问题...
推荐阅读
- python - 在 DataFrame 中使用 set 删除列表中的重复单词时,单词发生了变化(与顺序无关)
- reactjs - API(LoopBack)在 POST 后未返回更新的列表
- google-apps-script - 在带有链接的文本元素之后插入文本元素在谷歌文档中
- asp.net-mvc - 如何在asp net mvc中将数据字符串更改为getrolesforuser的int?
- python - 使用远程主机接口的 scapy 嗅探
- node.js - Pug mixin 和布局在一个文件中扩展
- c - C 编译器如何确定有效的左值?
- php - 在竞赛获胜者的数据库查询中需要帮助
- docker - Docker 映像中的 TensorFlow 已禁用?
- wpf - WPF 使用扩展工具包向导 - 如何隐藏页脚区域?