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의 해시를 사용함으로써 그러나 accomplised 될 수있다 삽입 순서에 있지 않습니다. 루비 1.9를 사용하면됩니다.
그러나 레일은 그 대안 인 클래스 OrderedHash
을 제공합니다.
[[:key, 'value'], [:second_key, 'second value']]
의 항목은 당신이 그들을 삽입 순서에 남아 :
my_hash = ActiveSupport::OrderedHash.new
my_hash[:key] = 'value'
my_hash[:second_key] = 'second value'
이 해시 사실 그 형식의 배열입니다.
다른 해시와 같이 액세스 할 수 있습니다.
0
i18n-js에 대해 만든이 코드는 해시를 ActiveSupport :: OrderedHash로 변환 할 때 도움이 될 수 있습니다. 필요한 경우 자연 순서에 따라 키를 정렬하십시오.
http://seb.box.re/2010/1/15/deep-hash-ordering-with-ruby-1-8
행운이 없습니다. 여전히 무작위로 표시됩니다. Ruby 1.8.7 사용. – Jeffrey