arrays - 如何检查数组中每个元素的条件?

标签 arrays swift loops if-statement control-flow

我有一段代码,我只想在数组中的每个元素都满足特定条件时才运行。目前,我必须知道数组的长度才能使任何代码正常工作,但我的最终目标是让它适用于任何长度的数组。

我当前的代码:

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/

相关文章:

ios - 在 Swift 中循环遍历嵌入式 JSON 数组?

c++ - 指向数组第一个元素的指针的地址?

java - 引用第二个数组

ios - 如何在运行时在 TabBarcontroller 中安排标签栏项目?

javascript - 将多位数减少到一位数 - 请指导不回答

c - 读取文件并存储在数组中

ios - 将 SKScene 添加到 UIViewController?

ios - 使用 constraintsWithVisualFormat 的自动布局效果不佳

c# - 如何在 c sharp 中的每个循环中跳过 a 中的特定位置?

javascript - 如果对象为空则跳过 for 循环