: 나는 중첩 된 값을 검색하는 방법을 알고중첩 해시가있는 여러 해시 키를 가져 오는 방법은 무엇입니까?
imahash = { :id => { :name => "Alma", :email => "[email protected]" },
:stats => { :gender => "Female" },
:location => { :city => "Freeport", :state => "Maine" }
}
,를 입력하면 해시 이름은 모든 키와 값을 덤프합니다. 하지만 내가하고 싶은 일은 이름과 성별과 같은 특정 키를 가져 오는 것입니다. 또는 : 이름과 : 도시에만 해당됩니다.
이것이 가능합니까? 왜냐하면 내가 찾은 바에 따르면 한 번에 하나의 키 또는 모든 키에 대한 해시 값만 검색 할 수있는 것 같습니다. 난 당신이 튜플의 값을 잡아하려는 가정
=> { :id => { :name => "Alma" }, :location => { :city => "Freeport" } }
초래 성별 그래, 튜플 나는 그것이 (? 단지 정렬 된 목록을 오른쪽으로) 생각하는 경우 , 그리고 나서 새로운 배열을 생성합니다 (또는 mportiz의 대답과 같이 새로운 것을 가지고 있습니다). 관심이 없으면 새 해시/배열을 만들지 않고 출력을 얻을 수있는 방법이 있습니까? – Murmur
중첩 해시 (xml 문서의 경우 xpath와 유사)를 탐색하기위한 '해시 경로'배열을 사용하는 함수를 만들면 imahash를 한 번만 참조 할 수 있습니다. 당신이 새로운 해시/배열을 만들지 않고도 할 수 있는지 의심. 효율성을 이유로 요구하는 경우 조기 최적화 IMHO입니다. – peakxu
오케이, 이해합니다. 그래, 난 효율적인 이유로 주로 요구했다. 그게 전부 다 알았어, 고마워. – Murmur