在下面的代码中,如何在groupingDict
中将Jack的饮料从“Lemonade”更改为“Soda”。
struct User {
var name: String?
var drink: String?
}
let u1 = User(name: "Jack", drink: "Lemonade")
let u2 = User(name: "Jill", drink: "Iced Tea")
let list = [u1, u2]
var groupingDict = Dictionary(grouping: list, by: { $0.name })
print("groupingDict-original: ", groupingDict)
for (index, dict) in groupingDict.enumerated() {
if dict.key == "Jack" {
}
}
print("groupingDict-changed: ", groupingDict)
2条答案
按热度按时间368yc8dk1#
访问Jack的组,使用
reduce(into:)
遍历每个对象,并创建对象的副本,如果饮料为“Lemonade”,则将其设置为“Soda”qxsslcnc2#
我找到了另一种方法。你可以使用
firstIndex(where: { }
来获取条目的索引,修改属性,创建一个条目的副本,然后赋给字典值: