我在代码中有一个这样的结构,它是可识别的并且也有嵌套项:
struct Item: Identifiable {
let id: UUID = UUID()
var nameOfItem: String
var nestedItems: [Item]
init(nameOfItem: String, nestedItems: [Item]) {
self.nameOfItem = nameOfItem
self.nestedItems = nestedItems
}
}
var myArray: [Item] = [Item]()
我的问题是,在构建数组后,如果我需要更新某个项目,我知道该项目的 ID,但我不知道如何查找该 ID 并以正确的方式找到它。看这张照片,我可以查看 myArray 中的每个项目以找到与我的查找 ID 匹配的项目,如果 myArray 项目没有我要查找的项目,我必须开始在每个数组项目的嵌套项目中查找,这将花费大量时间。寻找是否有更快的方法来找到所需的项目。
要
... update an item I know the id of that Item but I do not know how to look for that id and find it in correct way
,请使用递归,例如:编辑-1:
您可以使用相同的方法(递归)构造一次字典
[UUID: Item]
。然后,您可以直接访问/更新所需的项目ID,无需访问开销。