首页 > 解决方案 > 如何连接数组中的特定字符串?[SwiftUI]

问题描述

我有一个数组:

struct Main: Identifiable {
    var id = UUID()
    var value: String
    var type: String
}
var mainArray = [Main]()

我需要将这个数组中每个元素的“var value”输出到 Text("")

喜欢 :Text("(main[index].value)")

但我不知道这样做的正确方法

此外,我将需要能够使用以下函数调整我获得的值:

func readMain() -> String {
        if main[index].value == "specificContent" { return "Correct" }
        else { return "Incorrect"}
    }

然后添加我的Text(readMain())但返回数组中的所有值,如: Text("Correct, Incorrect, Incorrect, Correct, Correct")

任何想法 ?

提前致谢 !

标签: arraysconcatenationswiftui

解决方案


我想你正在寻找这样的东西:

@State private var mainArray = [Main]()

var body: some View {
    ForEach(mainArray) { main in
        Text(
            main.value == "correctValue" ?
            "Correct" :
            "Incorrect"
        )
    }
}

这会分别打印 value 属性(mainArray 中每个 Main 元素的)是否“正确”。

但是,如果您希望您的文本出现在一行中,并用空格字符分隔不同的 mainArray 值,您可以这样做:

@State private var mainArray = [Main]()

var body: some View {
    Text(
        mainArray
            .map {
                $0.value == "correctValue" ?
                    "Correct" :
                    "Incorrect"
            }
            .joined(separator: " ")
    )
}

在上面的示例中,mainArray 被转换为一个字符串数组,其中包含值是否“正确”的描述,然后将这些值连接成一个字符串,并用空格字符(“”)分隔它们。


推荐阅读