gpt4 book ai didi

arrays - 如何在 Swift 中从字符串数组中过滤对象

转载 作者:搜寻专家 更新时间:2023-11-01 05:54:48 25 4
gpt4 key购买 nike

我有一个 allMenuItems 数组,如下所示,我正试图从一个 Id 数组中过滤它。这在 Swift 中是如何实现的?我对高阶函数有一些了解,但到目前为止我一直无法成功过滤它。欢迎任何关于如何实现这一目标的指示,谢谢。

struct MenuItems {
var id: String
var name: String

init() {
self.id = ""
self.name = ""
}
}

var m1 = MenuItems()
m1.id = "1"
m1.name = "Name 1"

var m2 = MenuItems()
m2.id = "2"
m2.name = "Name 2"

var m3 = MenuItems()
m3.id = "3"
m3.name = "Name 3"

var allMenuItems: [MenuItems] = [m1, m2, m3] // [{id "1", name "Name 1"}, {id "2", name "Name 2"}, {id "3", name "Name 3"}]

var anArrayOfIds: [String] = ["1", "3"]

过滤后的输出将是:

var filteredMenuItems: [MenuItems] = [m1, m3] // [{id "1", name "Name 1"}, {id "3", name "Name 3"}]

有什么建议吗?

最佳答案

怎么样

let filteredMenuItems = allMenuItems.filter { anArrayOfIds.contains($0.id)}

这给了我带有 1 和 3 的项目。

我冒昧地稍微更新了你的代码:

struct MenuItems {
let id: String
let name: String
}

let m1 = MenuItems(id: "1", name: "Name 1")
let m2 = MenuItems(id: "2", name: "Name 2")
let m3 = MenuItems(id: "3", name: "Name 3")

let allMenuItems = [m1, m2, m3]
let anArrayOfIds: [String] = ["1", "3"]

let filteredMenuItems = allMenuItems.filter { anArrayOfIds.contains($0.id)}

希望对你有帮助

关于arrays - 如何在 Swift 中从字符串数组中过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53641080/

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