【发布时间】:2021-05-21 08:55:22
【问题描述】:
我有一个字典,其中包含值的键和项模型。
var selectedDic: [String: [Item]] = [:]
- 实际上我正在尝试使用字典键创建一个字符串,并且键具有多个用逗号分隔的值。
- 如果我向键添加更多值,它应该向特定键添加值。
-
price和publisher是键,itemId是值。
我需要这个字符串:price:10-25;publisher:576,925,1737
字典打印:
[
"price": [
Babil.Item(name: Optional("10 - 25"),
itemId: Optional("10-25"))
],
"publisher": [
Babil.Item(name: Optional("ABCD"),
itemId: Optional("576")),
Babil.Item(name: Optional("DEFG"),
itemId: Optional("925")),
Babil.Item(name: Optional("HIJK"),
itemId: Optional("1737"),
)
]
]
我的代码:
var itemString: [String: String] = [:]
var str: [String] = []
for (key, value) in selectedDic {
value.forEach { a in
if str.firstIndex(of: key) == nil {
str.append(a.itemId!)
}
}
let final = str.joined(separator: ",")
itemString.updateValue(final, forKey: key)
}
【问题讨论】:
-
let priceStr = itemString["price"]?.compactMap{ $0.name }.joined(separator: ","); let publisherStr = itemString["publisher"]?.compactMap{ $0.itemId } .joined(separator:","); let finalStr = [priceStr, publisherStr].compactMap{ $0 }.joined(separator: ";")或类似的东西?但是了解您当前的产量会有所帮助,可以有多个价格吗?为什么使用 Dict 而不是另一个自定义结构?为什么name和itemId在Item中都是可选的?这正常吗? -
@Larme 首先谢谢你。但在创建字符串之前,它也会将值复制到其他键。请参阅 -
["price": "10-25", "publisher": "10-25,576,925,1737"]10-25 在发布者中。
标签: ios swift string dictionary