Swift:过滤Object数组的数组

时间:2016-07-20 19:05:46

标签: arrays swift

我有以下结构

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

objA有一个布尔,比如isEnabled

我需要根据此bool过滤aSectionArray(说isEnabled == true)。

需要帮助。

1 个答案:

答案 0 :(得分:5)

您可以使用flatten()filter,就像这样(Swift 2):

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

它将为您提供isEnabled为真的对象。

我们使用flatten()将2D数组转换为1D数组,并使用filter来获取闭包验证的对象。

在Swift 3(Xcode 8 beta 6)flatten已成为joined

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