我有一个用例,其中我有一个现有的哈希:
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/