如何从flatmap中发出单个对象以在rxswift中过滤?
我想从flatmap的对象数组响应中获取单个对象,并且我想获取该单个对象以便根据其类型过滤对象。任何人都可以建议我如何解决这个问题?
答案 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