2
A
回答
0
你希望他們在什麼順序?您不應該期望它們處於插入順序。從docs for Hash:
在其中由任一鍵或值遍歷散列 可能看起來 任意的,並且通常不會在插入順序 順序。
如果您需要按特定順序排列,您只需從鍵/值中確定(例如按字母順序排列屬性名稱),則需要明確應用該排序。
1
2
h = Hash[:x,123,:a,553,:d,949,:e,5321]
=> {:e=>5321, :x=>123, :a=>553, :d=>949}
h.sort { |x,y| x[0].to_s <=> y[0].to_s }
=> [[:a, 553], [:d, 949], [:e, 5321], [:x, 123]]
4
紅寶石1.8的散列被全美基礎不是插入順序。隨着紅寶石1.9,他們會。
但是,rails提供了替代方案,類OrderedHash
。
my_hash = ActiveSupport::OrderedHash.new
my_hash[:key] = 'value'
my_hash[:second_key] = 'second value'
此散列其實這種格式的數組:
[[:key, 'value'], [:second_key, 'second value']]
的條目保持在你插入的順序。
你可以像使用其他散列一樣訪問它們。
0
這一塊,我只是爲國際化-JS做的代碼可能會幫助你,因爲它轉換成散列的ActiveSupport :: OrderedHash如果需要,然後進行排序是按自然順序鍵。
http://seb.box.re/2010/1/15/deep-hash-ordering-with-ruby-1-8
相關問題
- 1. Rails先訂購希臘字符
- 2. 哈希表vs哈希列表與哈希樹?
- 3. 如何在哈希中存儲哈希哈希?
- 4. 哈希
- 5. 哈希
- 6. 如何將兩個哈希合併到數組的哈希中?
- 7. 球衣可變哈希值到不可變哈希值
- 8. 如何將哈希數組推送到哈希數組?
- 9. 紅寶石提取哈希值並保存到新的哈希
- 10. 平哈希到層次結構的json哈希樹
- 11. 使用C++將哈希表複製到另一個哈希表
- 12. 添加ID到哈希
- 13. JSON文件到Ruby哈希
- 14. Perl哈希到oauth簽名
- 15. 映射到一個哈希
- 16. 蒙戈哈希找到
- 17. 哈希圖得到方法
- 18. SQL 2005 MD5哈希和C#MD5哈希
- 19. 哈希碼和哈希集的概念
- 20. 哈希表中的搜索哈希
- 21. SQL bigint哈希匹配c#int64哈希
- 22. Java MD5哈希不匹配.NET哈希
- 23. 哈希的Perl嵌套哈希
- 24. C#MD5哈希Groovy的MD5哈希
- 25. Rails哈希陣列哈希如何?
- 26. 哈希打印表哈希perl
- 27. 哈希的Perl哈希問題
- 28. 哈希的Perl哈希問題
- 29. 嵌套哈希排序哈希鍵
- 30. Python哈希函數和哈希對象
試過這個沒有運氣。它仍然隨機顯示。使用Ruby 1.8.7。 – Jeffrey 2009-11-09 18:45:59