2009-11-09 5 views

답변

0

어떤 주문을 원했습니까? 광고 게재 신청서에 광고가 게재 될 것으로 예상해서는 안됩니다.

당신이 임의의 을 보일 수도 키 또는 값 중 하나에 의해 해시 을 통과, 일반적으로 삽입 순서 되지 않습니다되는 순서 다음 docs for Hash에서.

키/값 (예 : 사전 순으로 속성 이름 순서 지정)을 특정 순서로 지정해야하는 경우 해당 순서를 명시 적으로 적용해야합니다.

1

해시를 정렬하는 일반적인 방법은 키 또는 값을 사용하는 것입니다. 여기 보라 :

hash.sort

더 복잡한 종류가 우주선 운영자에게

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

행운이 없습니다. 여전히 무작위로 표시됩니다. Ruby 1.8.7 사용. – Jeffrey