arrays - 遍历数组,如果值存在则返回 TRUE

标签 arrays swift

我想遍历一个数组,如果值存在,我想返回 TRUE。

struct Loops {
    var loopStep: LoopStep
}

struct LoopStep {
    var template: [Template]
}

struct Template {
    var stepType: String
}

let templates: [Template]  = [Template(stepType: "FORM_ONE"), Template(stepType: "FORM_TWO")]
let loopStep = LoopStep(template: templates)

let incompleteSteps = [Loops(loopStep: loopStep)]

我已经使用 reduce 尝试过这个但是不能使这个语法工作

let result = incompleteSteps.reduce(true, $0.loopStep.template.stepType == "FORM_ONE" )

最佳答案

您只需要使用contains(where:) 来获取一个bool 返回值,该返回值指示集合中是否存在与闭包匹配的元素。由于 template 本身也是一个 Array,如果您想知道一个Loops 数组包含任何 Loops,其 template 数组包含具有匹配要求的 Template

let result = incompleteSteps.contains(where: {$0.loopStep.template.contains(where: {$0.stepType == "FORM_ONE"})})

关于arrays - 遍历数组,如果值存在则返回 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54019045/

相关文章:

ios - 如何在 Swift 的 WKWebView 中禁用用户选择?

ios - 不同时读取数据GCDAsyncSocket

swift - 使文档 ID = UID firestore swift

c++ - (C++) 关于语法的非常基本的问题

javascript - 在 javascript 中使用特定键反转对象数组时出现问题(React)

arrays - 从 typescript 中的对象数组中获取属性值数组

swift - 将 self 作为参数传递给方法

ios - 使用 Swift 在 iOS 11 中向 NSAttributedString 添加删除线

python - Numpy ndarray 包含可变大小的对象(对象数组)

javascript - 循环数组Javascript后替换对象属性值中的字符串