如何从flatmap中发出单个对象以在RxSwift中过滤?

时间:2018-02-21 06:27:33

标签: swift alamofire rx-swift

如何从flatmap中发出单个对象以在rxswift中过滤?

我想从flatmap的对象数组响应中获取单个对象,并且我想获取该单个对象以便根据其类型过滤对象。任何人都可以建议我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

要根据类型过滤对象,您可以使用filter。如果您想要转换列表中的每个元素并省略nils,flatmap通常是候选者。 在您的情况下,假设您想从异构数组中提取String:

let sampleArray: [Any] = [1, "123", JSONDecoder()]
let filteredString = sampleArray.filter { (element) -> Bool in
    if let _ = element as? String {
        return true
    }
    return false
}.first

或简写:

let filteredString = sampleArray.filter { return ($0 as? String) != nil }.first