1
나는 많은 게시물을 읽었지만 아무도이 일을하지 않는 것으로 보인다. 다소 까다 롭다.해시 배열을 루비에 배열로 포함하는 해시
배열의 값 중 하나로 배열을 포함하는 해시가 있다고 가정 해보십시오. 다음과 같이
hash = {
:a => 'one',
:arr => [
{:id => 'ten', :amount => 10, :b => 'two'},
{:id => 'twenty', :amount => 20, :b => 'two'},
{:id => 'apple', :amount => 7, :b => 'applesauce'}
],
:c => 3
}
나는, (포함 된 배열의 크기의 것) 해시의 배열이를 변환 할 :
변환이/값 쌍은 어떤 키 유지해야# => [
{:a => 'one', :id => 'ten', :amount => 10, :b => 'two', :c => 3},
{:a => 'one', :id => 'twenty', :amount => 20, :b => 'two', :c => 3},
{:a => 'one', :id => 'apple', :amount => 7, :b => 'applesauce', :c => 3}
]
flatten_hash_array(hash, :arr)
내가 Array 클래스의 루비 flatten
이 아닌 어떤 것을 실현 : 내부 및 배열 외부 이상적으로 나는이 작업을 수행 물어 배열의 키를 전달할 수 우리가 필요해. 동사를 움켜 잡는다! 어떤 도움을 주시면 감사하겠습니다.
굉장! hash.reject 블록은 k, v를 전달하면되고, 매력처럼 작동합니다. 감사! def flatten_hash_array (해시, 키) 해시 [키] .map {| 항목 | end – adamrneary
흠, 1.8/1.9의 차이가 있어야합니다. 루비는'hash.reject {| k |}'를 허용합니다. 두 개의 매개 변수를 사용할 수 있습니다. 그러나 헤이 - 그것이 당신을 위해 일하기 때문에 기쁘다. – Chowlett