{"Journal"=>[[4, -785.0],
[13, -21.9165000915527],
[14, -213.008995056152],
[15, -50.074499130249]]}
어떻게이 해시를 루비에서 반복 할 수 있으며 & 키를 분리 할 수 있습니까? 경우해시 수집 반복
{"Journal"=>[[4, -785.0],
[13, -21.9165000915527],
[14, -213.008995056152],
[15, -50.074499130249]]}
어떻게이 해시를 루비에서 반복 할 수 있으며 & 키를 분리 할 수 있습니까? 경우해시 수집 반복
myHash.each do |key, value|
// key holds the key, value holds the value
end
이렇게지도에 배열 안에 배열을 변환 할 :
myNewHash = {}
myArrayOfArrays = myHash["Journal"]
myArrayOfArrays.each do | item |
myNewHash[item[0]] = item[1]
end
루비는 균일 한 반복 인터페이스를 가지고 있습니다. Ruby의 모든 컬렉션에는 each
이라는 메서드가 있습니다.이 메서드를 사용하면 컬렉션의 각 요소를 반복 할 수 있습니다. 그러나 명시 적 반복은 코드 냄새입니다. 주로 map
, reduce
, select
, find
, reject
등과 같은 상위 수준 반복기를 사용해야합니다. 루비 destructuring에
print hsh.reduce('') {|s, el|
s << "The key is #{el.first} and the value is #{el.last}.\n"
}
감사 : 콜렉션이 Hash
하여 블록으로 수득되는 각 원소 특히이 경우
print hsh.reduce('') {|s, (k, v)|
s << "The key is #{k} and the value is #{v}.\n"
}
, 당신은을 어쩌면 틀린 콘테이너를 사용하여 – Scoregraphic
@Scoregraphic - 꼭 그런 것은 아닙니다 - 이것은 드문 경우는 아닙니다. 예 : 데이터 직렬화. –
잠깐, 값이 배열 배열 인 단일 키/값 쌍을 가진 해시가 있습니까? – haffax