2011-10-25 4 views
4

에서 제거 "빈"요소 나는이다차원 배열

[ [[]], [[1], [2]], [[1, 2]] ] 

빈 배열을 제거하는 가장 좋은 방법은 무엇입니까 같은 다차원 배열 뭔가?

지금 당장은 첫 번째 요소를 제거하기 위해 array[1..-1]을 수행하고 있지만 더 신뢰할 수있는 방법을 원합니다.

+0

'[[], [1]], [[1], [2]]]'로 무엇을하고 싶습니까? –

+0

@muistooshort 배열이 내 것과 다른 점에 유의하십시오. 나는 다른 배열과 비교하여 가장 짧은 부분 문자열을 찾는다. 나는 'ar.each_index.map {| i | ar.combination (i) .to_a' – Brand

+0

그럼 당신은 요소로 [[], [1]]을 (를) 얻을 수 없다는 말입니까? 나는 당신의 데이터가 실제로 어떻게 보이는지 분명히하려고 노력하고있다. –

답변

8

각 배열을 병합하고 요소가없는 경우 삭제하십시오.

arr = [ [[]], [[1], [2]], [[1, 2]] ] 
arr = arr.delete_if { |elem| elem.flatten.empty? } 
# => [[[1], [2]], [[1, 2]]]