Вы можете использовать словарь для этого.
import UIKit
struct TestData {
let Label : String
var Money : Double
}
var SaveDate = [TestData]()
SaveDate.append(TestData(Label: "test1", Money: 55))
SaveDate.append(TestData(Label: "test1", Money: 35))
SaveDate.append(TestData(Label: "test2" , Money: 15))
SaveDate.append(TestData(Label: "test1" , Money: 10))
SaveDate.append(TestData(Label: "test3" , Money: 30))
var dictionaryOfValues:[String:Double] = [:]
func addUp() {
for currentItem in SaveDate {
dictionaryOfValues[currentItem.Label] = (dictionaryOfValues[currentItem.Label] == nil ? currentItem.Money : dictionaryOfValues[currentItem.Label] + currentItem.Money)
}
}
addUp()
print(dictionaryOfValues) //["test1": 100.0, "test2": 15.0, "test3": 30.0]
Я управлял этим на быстрой площадке.
Словарь может отслеживать, когда вы столкнулись с ярлыком или нет. Причина, по которой я делаю dictionaryOfValues[currentItem.Label] = (dictionaryOfValues[currentItem.Label] == nil ? currentItem.Money : dictionaryOfValues[currentItem.Label] + currentItem.Money)
, заключается в том, что ему нужно либо 1) добавить его в словарь, либо 2) добавить текущее значение к значению, уже существующему в словаре.
Всякий раз, когда вы будете готовы, вы можете позвонить addUp()
, и он сделает всю работу за вас.