2016-07-20 2 views
0

의 배열의 필터 배열 내가스위프트 : 개체

aSectionArray = [[objA, objB, objC], [obj1, obj2, obj3], [objX, objY, objZ]] 

이 objA은 부울을 데 다음과 같은 구조를 가지고 isEnabled을 말한다.

이 부울을 기반으로 aSectionArray을 필터링해야합니다 (예 : isEnabled == true).

도움이 필요합니다.

+2

당신이 필터를 통해 달성하기 위해 무엇을 원하는가? isEnabled가 true 인 모든 객체를 원합니까? – Welton122

+1

배열의 유형은 무엇입니까? –

+1

Eric이 제안한대로 병합 및 필터링하거나, 요소가 일치하는 외부 배열의 요소 또는 일치하는 개체의 배열을 반환하거나 아니면 반환하려는 경우 명확하지 않습니다. –

답변

5

이 같은 flatten()filter (스위프트 2)를 사용할 수 있습니다

let result = aSectionArray.flatten().filter { $0.isEnabled } 

그것은 당신에게 isEnabled에 해당하는 개체를 제공 할 것입니다.

flatten()을 사용하여 2D 배열을 1D 배열로 만들고 filter을 사용하여 클로저가 확인하는 개체를 가져옵니다. 스위프트 3 (엑스 코드 8 베타 6) flatten에서

joined이되었다 :

let result = aSectionArray.joined().filter { $0.isEnabled }