我有一段代码,我只想在数组中的每个元素都满足特定条件时才运行。目前,我必须知道数组的长度才能使任何代码正常工作,但我的最终目标是让它适用于任何长度的数组。
我当前的代码:
if (rand[0] == someInt && rand[1] == someInt && . . . && rand[n] == someInt) {
*do some things*
}
我希望它在不知道 rand
长度的情况下工作。
最佳答案
在 Swift 3 中,使用 first(where:)
,这非常简单:
extension Sequence {
func allPass(predicate: (Iterator.Element) -> Bool) -> Bool {
return first(where: { !predicate($0) }) == nil
}
}
在 Swift 2.2 中,它是类似的:
extension SequenceType {
func allPass(predicate: (Generator.Element) -> Bool) -> Bool {
for element in self {
if !predicate(element) { return false }
}
return true
}
}
无论哪种情况,当它们找到第一个失败的元素时,它们会立即返回 false。
关于arrays - 如何检查数组中每个元素的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37932935/