[ruby-on-rails] 如何用另一個鍵替換散列鍵


Answers

hash[:new_key] = hash.delete :old_key
Question

我有一個條件,我得到一個散列

  hash = {"_id"=>"4de7140772f8be03da000018", .....}

我想要這個散列

  hash = {"id"=>"4de7140772f8be03da000018", ......}

PS :我不知道哈希中的密鑰是什麼,它們是隨機的,每個密鑰都帶有一個“_”前綴,我不想下劃線




你可以做

hash.inject({}){|option, (k,v) | option["id"] = v if k == "_id"; option}

這應該適合你的情況!




如果我們想要在哈希中重命名一個特定的密鑰,那麼我們可以按如下方式進行:
假設我的散列是my_hash = {'test' => 'ruby hash demo'}
現在我想用'message'替換'test',然後:
my_hash['message'] = my_hash.delete('test')




Related