如何在swift中添加数组元素?



这次我正在使用数组,我想添加元素。每当用户在数组中添加某个值时,我希望它与前一个值相加,并给出总价值。

struct KeyValues{
var category:String!
var amount:String!  
}
var arrExpense = [KeyValues]()

在我的例子中,我正在向amount变量添加值。我想要所有用户加到金额值上的值的总和。我怎样才能在短时间内做到这一点呢?我需要用循环还是别的什么?

首先绝不将结构体成员声明为隐式可选解包装。如果它应该是可选的,声明为常规可选(?)

其次,如果一个值不会改变(可能是category),声明它为常数(let)

可以用compactMapreduce来求和

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

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

compactMap用于过滤不能转换为Int的字符串。考虑为amount

使用数字类型

请参阅此文章

let numbers = [1,2,3,5]
numbers.append(6)        // [1,2,3,5,6]
numbers.insert(4, at: 3) // [1,2,3,4,5,6]
numbers.remove(at: 1)    // [1,3,4,5,6]
numbers.removeLast()     // [1,3,4,5]
let total = numbers.reduce(0, +)  // 0 = starting point, + = operation
// 0 + 1 + 3 + 4 + 5 = 13

最新更新