【发布时间】:2018-09-10 01:51:34
【问题描述】:
我在使用新的 map、flatMap、filter、reduce 和 zip 函数时遇到了困难。考虑以下: 您有两个数组 A 和 B,它们包含不同的对象。对于 A 中的每个对象,您需要在 B 中找到相应的对象(通过它们的 id 属性),并从 B 更新对象的一些属性。这可以用旧方法完成,使用两个 for 循环,如下所示:
private func update(statuses: [JobStatus], forJobs jobs: [JobBookPayload]) {
for jobStatus in statuses {
for job in jobs {
if jobStatus.jobId == job.jobId {
job.status = jobStatus.status!
job.option = jobStatus.option!
}
}
}
}
这是否可以使用新函数来完成,以使代码更“Swifty”并提高可读性?
【问题讨论】:
-
那是清晰易读的代码。 – 除非您更改数据结构,否则您将始终需要嵌套循环(在过滤器中显式或隐藏)。
-
还不错,我只是想知道是否可以使用 Swift 中的新功能来实现。