【发布时间】:2019-06-07 02:33:48
【问题描述】:
我有一个对象数组,每个对象都有一个类别和一个数量,如下所示:
Record("Bills", 150.00), Record("Groceries", 59.90) 等...
我想使用 reduce 来填充 [String:[CGFloat]] 字典。
应该是这样的:
[ "账单" : [150.00, 140.00, 200.00] , "杂货" : [59.90, 40.00, 60.00] ]
但是,我不知道如何优雅地实现这一点。
我试过了(没有成功):
var dictionary = [String:[CGFloat]]()
dictionary = expenses_week.reduce(into: [:]) { (result, record) in
result[record.category ?? "", default: 0].append((CGFloat(record.amount)))
上面返回错误:“Cannot subscript a value of wrong or ambiguous type.”
我得到的最接近的是:
var dictionary = [String:[CGFloat]]()
dictionary = expenses_week.reduce(into: [:]) { (result, record) in
result[record.category ?? "", default: 0] = [(CGFloat(record.amount))]
这行得通,但显然它并没有达到我想要的效果。 :)
非常感谢您的帮助。
【问题讨论】:
标签: ios swift xcode dictionary reduce