해시

2014-10-06 3 views
0

의 배열의 조합을 만들어 배열이 같은 있습니다. min=0max=2와 예를 들어 해시

, 코드를 반환해야합니다 :

resultarray=[ 
{}, 
{"a" => "b" }, 
{"c" => "d"}, 
{"e" => "f"}, 
{"a" => "b" } , {"c" => "d"}, 
{"c" => "d"} , {"e" => "f"}, 
{"a" => "b" },{"e" => "f"} 
] 

을 내가 어떻게해야합니까?

+1

아마도 쉬운 방법이 있습니다. 너 뭐하려고? – Stefan

+1

해시 작동 방식에 대해 혼란 스러울 수도 있습니다. 해시의 값은 * 많은 * 키 - 값 쌍을 저장하는 것입니다. 당신이하려는 일에 대해 더 많이 알면 큰 도움이 될 것이지만, 나는 당신의 데이터 구조가 약간의 조정이 필요하다고 생각합니다. –

답변

2
min = 0 
max = 2 
min.upto(max).flat_map {|n| hasharray.combination(n).to_a } 
# => [ 
# [], 
# [{"a"=>"b"}], [{"c"=>"d"}], [{"e"=>"f"}], 
# [{"a"=>"b"}, {"c"=>"d"}], [{"a"=>"b"}, {"e"=>"f"}], [{"c"=>"d"}, {"e"=>"f"}] 
# ] 
+0

OP가 언급 한대로 귀하의 답변이 결과를 어떻게 생성하는지 보지 못합니까? – Surya

+0

나는 그가 그의 표기법으로 배열을 둘러싸는 것을 잊었다 고 생각한다. 그렇지 않으면 질문이 많은 의미를 갖지 않는다. 코드로 무엇을 할 수 있는지 생각해 보셨습니까? 게시 된 op와 같은 배열을 반환하면 쓸모가 없지만 해시를 별도의 줄에 넣어 올바른 그룹화를 수행했습니다. –

+3

@ Suurya 내 의견으로는 최악의 답변은 질문을 뒤에서 보지 않고 OP가 실제로 필요로하는 것을 찾지 못한 사람들에 의해 게시됩니다. 너무 자주, 답변은 OP가 요청한 결과를 정확하게 생산하는 것만으로도 돌아가지만, 이것이 가장 좋은 해결책은 아닙니다. 질문이 무엇인지 이해하지 못하면 downvote하지 마십시오. –