迭代并添加到 RxSwift 中的数组
Iterating over and adding to an array in RxSwift
我正在发出一个网络请求,我从中获得了一堆用户,我还获得了一个包含 userId 属性 的 emailDetails 对象。我正在尝试遍历来自网络请求的用户,以匹配来自 emailDetails
的所有 userId
我不确定如何迭代,我知道枚举存在于 RxSwift 中。
self.emailRecipients = networkRequestToGetUser
.asObservable()
.map { users in users.filter {[=10=].userId ==
emailDetails.userIds }.first }
.map {correctUsers in return correctUsers?.email}
.unwrap()
我收到错误:二元运算符“==”不能应用于 'String' 和“[String]”
类型的操作数
据我了解您的代码片段,您的问题实际上与 RxSwift 无关。显然 emailDetails.userIds
是一个字符串数组 [String]
。您可以在映射时使用此检查数组是否包含 userId
:
.map { users in users.filter { emailDetails.userIds.contains([=10=].userId) }.first }
获得第一场比赛。如果你想把它们都放在一个数组中,只需放下 .first
并映射到电子邮件字段:
self.emailRecipients = networkRequestToGetUser
.asObservable()
.map { users in
users.filter {
emailDetails.userIds.contains([=11=].userId)
}.map { [=11=].email }
}
获取电子邮件地址数组的 Observable。要获得实际地址,请不要忘记 subscribe()
到那个 emailRecipients
-Observable。
我正在发出一个网络请求,我从中获得了一堆用户,我还获得了一个包含 userId 属性 的 emailDetails 对象。我正在尝试遍历来自网络请求的用户,以匹配来自 emailDetails
的所有 userId我不确定如何迭代,我知道枚举存在于 RxSwift 中。
self.emailRecipients = networkRequestToGetUser
.asObservable()
.map { users in users.filter {[=10=].userId ==
emailDetails.userIds }.first }
.map {correctUsers in return correctUsers?.email}
.unwrap()
我收到错误:二元运算符“==”不能应用于 'String' 和“[String]”
类型的操作数据我了解您的代码片段,您的问题实际上与 RxSwift 无关。显然 emailDetails.userIds
是一个字符串数组 [String]
。您可以在映射时使用此检查数组是否包含 userId
:
.map { users in users.filter { emailDetails.userIds.contains([=10=].userId) }.first }
获得第一场比赛。如果你想把它们都放在一个数组中,只需放下 .first
并映射到电子邮件字段:
self.emailRecipients = networkRequestToGetUser
.asObservable()
.map { users in
users.filter {
emailDetails.userIds.contains([=11=].userId)
}.map { [=11=].email }
}
获取电子邮件地址数组的 Observable。要获得实际地址,请不要忘记 subscribe()
到那个 emailRecipients
-Observable。