【发布时间】:2017-05-15 04:27:27
【问题描述】:
我有一个格式如下的数组:
["Trousers : 15.50", "Trousers : 15.50", "Jumper : 12.99", "Shoes: 50.00"]
我想这样格式化:
["2x Trousers : 31.00", "1x Jumper : 12.99", "1x Shoes: 50.00"]
我尝试使用以下格式进行格式化:
var counts: [String:Int] = [:]
var shoppingList = ["Trousers : 15.50", "Trousers : 15.50", "Jumper : 12.99", "Shoes: 50.00"]
var formattedShoppingList = [String]()
for item in shoppingList {
counts[item] = (counts[item] ?? 0) + 1
}
for (key, value) in counts {
let display:String = String(value) + "x " + key
formattedShoppingList.append(display)
}
但我明白了
["2x Trousers : 15.50", "1x Jumper : 12.99", "1x Shoes: 50.00"]
如果我使用字典,我不能有重复。我该如何处理?
【问题讨论】:
-
我的猜测是
var shoppingList = ["Trousers : 15.50", "Trousers : 15.50", "Jumper : 12.99", "Shoes: 50.00"] -
我会将所有这些数据分组到
struct或class中,而不是使用字典,然后您可以使用一些属性来获取项目的大小。struct Grouping { var Key:String var values:[String] } -
你知道
[Trousers : 15.50, Trousers : 15.50, Jumper : 12.99, Shoes: 50.00]不是一个数组吗? -
对不起,我错过了报价
标签: arrays swift swift3 shopping-cart