2013-11-21 5 views
-3

키를 지정하지 않고 해시에서 여러 키 값만 가져 오는 방법은 무엇입니까?해시 값 가져 오기

{Sat, 23 Nov 2013=>12, Fri, 22 Nov 2013=>15, Thu, 21 Nov 2013=>13} 
+5

가 유효한 해시 (당신이 IRB에 입력 할 수있는 예를 들어 하나) 질문을 업데이트하시기 바랍니다과에 명확한 질문 (예 : 찾고있는 결과의 예) –

+1

"다중 키 값"이란 무엇을 의미합니까? 모든 값 또는 일부만 얻으려고하십니까? – marzapower

+1

방금 ​​값을 비교하고 싶었지만 유효한 해시를 반환하기 위해 코드를 수정해야합니다. 도움을 주셔서 감사합니다. – John

답변

0

그래서 난 그냥 그 해시에서 키의 값을 필요로했기 때문에 (또는하지, 어떻게 보냐)

h = {Sat, 23 Nov 2013=>12, Fri, 22 Nov 2013=>15, Thu, 21 Nov 2013=>13} 
h.each_value {|v| t << v} 
t => [12, 15, 13] 
6

와 해시 값 # : 이 내 해시

a = {"Sat, 23 Nov 2013"=>12, "Fri, 22 Nov 2013"=>15, "Thu, 21 Nov 2013"=>13} 
a.values 

결과 :

[12, 15, 13] 
0

의 당신은 당신도 값을 원했고에 할당 싶어한다고 가정 해 봅시다 배열은 이렇게 ... 해시에 .even_value 메서드를 사용하십시오.

hash = {"Sat, 23 Nov 2013"=>12, "Fri, 22 Nov 2013"=>15, "Thu, 21 Nov 2013"=>13} 
array = [] 
hash.each_value {|i| array << i if i.even? } 
puts array # [12] 

http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-each_value

.even_value 만 값을 살펴보고 당신이 또는 당신이 필요로하는 무엇에 선택 스타일 옵션을 수행 할 수 있습니다!

0

당신이 묻는 것은 100 % 명확하지 않지만 값을 선택하기 위해 어떤 종류의 술어를 사용하려면 #select를 사용하고 싶습니다.

hash = {"Sat, 23 Nov 2013"=>12, "Fri, 22 Nov 2013"=>15, "Thu, 21 Nov 2013"=>13} 
results = hash.each_value.select { |v| ... } 

여기에서 ...은 지정하려는 조건입니다. v.even? 또는 v.odd? 또는 v % 3 == 0 다른 부울과 같을 수 있습니다.

관련 문제