从vadian的评论在这里非常重要。你不应该有这样的多个数组。创建一个包含数据的结构:
struct Score {
let isComplete: Bool
let finalScore: Int
}
然后,您可以添加Date或任何其他您当前具有并行阵列的字段。然后你的数据是这样的:
let scores = [
Score(isComplete: true, finalScore: 12),
Score(isComplete: true, finalScore: 12),
Score(isComplete: true, finalScore: 12),
Score(isComplete: true, finalScore: 12),
Score(isComplete: false, finalScore: 3),
Score(isComplete: true, finalScore: 13),
Score(isComplete: true, finalScore: 13),
Score(isComplete: false, finalScore: 2),
Score(isComplete: false, finalScore: 2),
]
并获得完整的人是通过过滤
let completeScores = scores.filter { $0.isComplete }
当然,如果你想只是最后得分为数组简单,你可以向下映射到:
let finalCompleteScores = completeScores.map { $0.finalScore }
这就是你应该如何考虑你的数据,而不是你必须保持同步的一堆数组。
考虑使用** **中之一的模型,而不是多个阵列的自定义结构的阵列。 – vadian
OOO听起来超酷,我该怎么做? – SashaZ
[Swift语言指南:类和结构](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html) – vadian