gpt4 book ai didi

swiftui - 在列表中同时迭代两个数组

转载 作者:行者123 更新时间:2023-12-01 21:52:12 24 4
gpt4 key购买 nike

如何迭代列表中的两个数组:

struct ContentView: View {
let colors = ["red", "green", "blue"]
let names = ["John", "Apple", "Seed"]

var body: some View {
VStack {
List(colors, id: \.self) { color in
Text(color)
}
}
}
}

例如我需要:Text("\(color) -\(animal)")

我的代码会是这样的(我知道这是错误的,但就是这样):

    List(colors, animals id: \.self) { color, animal in
Text("\(color) - \(animal)")
}

最佳答案

简单一点

var body: some View {
VStack {
List(Array(zip(colors, names)), id: \.self.0) { (color, name) in
Text("\(color) - \(name)")
}
}
}

更新:为非等长数组添加了变体

这个当然有点复杂,但可能会有帮助

var body: some View {
VStack {
ListOfPairs()
}
}

private func ListOfPairs() -> some View {
var iter = names.makeIterator()
let container = colors.reduce(into: Array<(String,String)>()) { (result, color) in
result.append((color, iter.next() ?? "None" )) // << placeholder for empty
}

return List(container, id: \.self.0) { (color, name) in
Text("\(color) - \(name)")
}
}

关于swiftui - 在列表中同时迭代两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59093220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com