首页 > 解决方案 > 如何快速添加数组元素?

问题描述

这次我正在使用数组,我想添加元素。每当用户在数组中添加一些值时,我希望将其添加到前一个值并给我总值。

struct KeyValues{
    var category:String!
    var amount:String!  
}

var arrExpense = [KeyValues]()

就我而言,我正在向数量变量添加值。我想要用户添加到金额值的所有值的总和。我怎样才能迅速做到这一点。我需要使用循环或其他东西吗?

标签: arraysswift

解决方案


首先,永远不要将结构成员声明为隐式展开的可选。如果它应该是可选的,则将其声明为常规可选(?

其次,如果一个值不会改变(也许category)将其声明为常量(let

compactMap您可以用和总结这些值reduce

struct KeyValues {
    let category : String
    var amount : String
}


let sum = arrExpense.compactMap{Int($0.amount)}.reduce(0, +)

compactMap有必要过滤无法转换为的字符串Int。考虑使用数字类型amount


推荐阅读