내포 된 해시에 대한 많은 질문이 있지만 내 문제에 대한 해결책을 찾지 못했습니다.루비 - 중첩 해시 반복 및 값 계산
나는 문자열에 당겨과 같이 해시에 각 문자를 일치 해요 :
numberOfChars = {}
string.each_char do |c|
RULES.each do |key, value|
if c === key
numberOfChars[value] += 1
end
end
end
이 괜찮 았는데와 것 내 해시 할 필요가 실현 될 때까지 "는 3 번 나타납니다"등의 출력 뭔가 중첩 된, 이것과 비슷합니다 :
RULES = {
:limb {
:colour {
'a' => 'foo',
'b' => 'bar'
},
'c' => 'baz'
}
}
그래서 '리프'키를 얻는 것이 어떻습니까?
해시를 반복하면서 각 키가 몇 번 표시되는지 계산해야합니다. 'a'는 'b'보다 더 많이 나타 납니까? 그렇다면 새 해시에 a를 추가하십시오. 하지만 실제로는 중첩 해시를 반복하는 방법을 모른 채 실제로 작동하는 방법에 대해서는별로 모르겠다.
나에게이 작업을 수행하는 지나치게 복잡한 방식이지만 누군가 포인터가 있다면 대단히 감사하게 생각할 것입니다!
또한 이미 고통스럽지 않은데 이미 Ruby를 처음 접했을 때 나는 근본적인 실수를 저지르고있을 것입니다.
사용중인 루비 버전은 무엇입니까? (ruby -v) RULES 예제를 사용하려고하면 Ruby가 불평합니다. –
아래 예를 참조하십시오. 규칙 설정에 댓글이 없습니다. –
@NoahClark 1.9.2를 사용하고 있습니다. 그래도 괜찮습니다. 예를 들어 쉼표를 빠뜨린 경우이를 포함하도록 편집했습니다. – fetimo