ruby - 在 Ruby Hash 的开头插入元素?

标签 ruby hash

我有一个用例,其中我有一个现有的哈希:

response = { aa: 'aaa', bb: 'bbb' }

我需要添加 id 作为键之一。

当我使用 response.merge(id: 'some_id') 然后将其转换为 JSON 时,我得到了 id 作为最后一个元素,但我没有想要。

我想在 response 的开头插入 id: 'some_id'。 我试过这个,但是迭代它感觉不太好:

new_response = { id: 'some id' }
response.keys.reverse.each {|key| new_response[key] = response[key] }

基本上,我需要类似 Ruby Array's unshift 的功能.

irb(main):042:0> arr = [1, 2, 3]
=> [1, 2, 3]
irb(main):043:0> arr.unshift(5)
=> [5, 1, 2, 3]

最佳答案

response = {aa: 'aaa', bb: 'bbb'}
new_response = {new: 'new_value'}.merge(response)
# => {:new=>"new_value", :aa=>"aaa", :bb=>"bbb"}

关于ruby - 在 Ruby Hash 的开头插入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20758818/

相关文章:

algorithm - 如何在在线绘图应用程序中为随机用户客户端唯一分配颜色/线条图案?

mysql - 升级到 Ubuntu 20.04 后无法再连接到 RDS MySQL (rails)

ruby - 除了 LICENSE 之外,哪些文件是添加到您的 gem 存储库的好习惯?

ruby-on-rails - Rails 命令只能在一个终端上运行

ruby - 如何监视 Ruby 哈希中的 `[]=` 方法?

c# - 使用散列进行身份验证

ruby - 调用 super() 是否会导致使用父类中的其他方法?

ruby - `var = something rescue nil` 行为

linux - 在 Linux 哈希表中插入 PID

hash - 为什么 md5 和 sha-* 在其哈希结果中仅使用字母数字字符?