2014-07-14 2 views
1

배열의 중첩 목록을 축소하고 고유 한 항목의 단일 배열로 찾고 빈 배열을 삭제하는 방법을 찾고 있습니다. 이 배열을 줄이기 위해 찾고Ruby 새로운 중첩 배열 항목의 배열

:

[[2700, 177, 2092, 176, 188], [123, 1234], []] 

이 새로운 배열에 다운 :

[2700, 177, 2092, 176, 188, 123, 1234] 

array.uniq.compact를 시도하지만, 작동하지 않았다.

의견을 보내 주셔서 감사합니다.

답변

9

는 먼저 배열을 평평하게해야합니다.

array.flatten.uniq 

몇 가지 참고 사항 :

  • Array#flatten는 최상위 배열에 모든 하위 배열을 병합합니다. 빈 배열에는 요소가 없기 때문에 빈 배열은 자동으로 제거됩니다.
  • Array#compactnil 요소가 제거 된 새 배열을 반환합니다.
  • Array#uniq은 고유 요소 만있는 새 배열을 반환합니다.
2

Array#flatten

자기 (재귀)의 1 차원 납작 인 새로운 배열을 돌려보십시오.

=> [[2700, 177, 2092, 176, 188], [123, 1234], []].flatten 
#> [2700, 177, 2092, 176, 188, 123, 1234]