2015-01-05 3 views
-1

["Sonya", "New York", "America"]과 같은 값의 배열이 있다고 가정 해 봅시다. 그런 다음 {name, state, country}과 같은 키가있는 해시가 있습니다. 배열의 값을 해시의 해당 키에 어떻게 할당합니까? 나는 그것이 루프라는 것을 알고 있지만, 나는 그것을 이해할 수 없다.배열의 값을 키만있는 해시에 넣기

+0

해시는 {이름, 주, 국가}입니까? 실제 코드를 사용하여 자신을 설명하십시오. –

+0

소냐, 요소를 문자열이나 기호로 배열로 표현하도록 편집하는 것이 좋습니다. 즉, [[이름], [상태], [국가]] 또는 [: 이름 : : 상태 : 국가]. 또한 예를 들자면 예상되거나 원하는 결과를 보여 주면 도움이됩니다. 예 :'{: name => "Sonya", : state => "New York", : country => "America"}' –

답변

2

이와 비슷한? Array#zip을 사용하여 valueskeys의 각 요소를 병합 한 다음 Array#to_h을 호출하여 Hash으로 변환합니다. 8 월 대답은 @의

values = ["Sonya", "New York", "America"] 
keys = [:name, :state, :country] 
hash = keys.zip(values).to_h 
# => {:name=>"Sonya", :state=>"New York", :country=>"America"} 
+0

너희들은 빠르다! 감사! –

1

약간의 변형 : 루비 버전

[keys, values].transpose.to_h 
    #=> {:name=>"Sonya", :state=>"New York", :country=>"America"} 

또는

Hash[[keys, values].transpose] 

2.0 이전. transpose은 플립 사이드 zip입니다.

관련 문제