我正在发出一个网络请求,从中我得到了一堆用户,我还得到了一个包含 userId 属性的 emailDetails 对象。我正在尝试遍历来自网络请求的用户以匹配来自 emailDetails 的所有用户 ID
我不确定如何迭代,我知道枚举存在于 RxSwift 中。
self.emailRecipients = networkRequestToGetUser
.asObservable()
.map { users in users.filter {$0.userId ==
emailDetails.userIds }.first }
.map {correctUsers in return correctUsers?.email}
.unwrap()
我得到的错误:二元运算符“==”不能应用于“字符串”和“[字符串]”类型的操作数
据我了解您的代码片段,您的问题实际上与 RxSwift 无关。显然emailDetails.userIds
是一个字符串数组[String]
。您可以检查 Array 是否包含userId
using this 作为您的映射:
.map { users in users.filter { emailDetails.userIds.contains($0.userId) }.first }
获得第一场比赛。如果您希望将所有这些都放在一个数组中,只需将.first
和 映射到电子邮件字段:
self.emailRecipients = networkRequestToGetUser
.asObservable()
.map { users in
users.filter {
emailDetails.userIds.contains($0.userId)
}.map { $0.email }
}
获取一组电子邮件地址的 Observable。为了获得实际不会忽略,不要忘了subscribe()
给emailRecipients
-Observable。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句