arrays - 如何快速添加数组元素?
问题描述
这次我正在使用数组,我想添加元素。每当用户在数组中添加一些值时,我希望将其添加到前一个值并给我总值。
struct KeyValues{
var category:String!
var amount:String!
}
var arrExpense = [KeyValues]()
就我而言,我正在向数量变量添加值。我想要用户添加到金额值的所有值的总和。我怎样才能迅速做到这一点。我需要使用循环或其他东西吗?
解决方案
首先,永远不要将结构成员声明为隐式展开的可选。如果它应该是可选的,则将其声明为常规可选(?
)
其次,如果一个值不会改变(也许category
)将其声明为常量(let
)
compactMap
您可以用和总结这些值reduce
struct KeyValues {
let category : String
var amount : String
}
let sum = arrExpense.compactMap{Int($0.amount)}.reduce(0, +)
compactMap
有必要过滤无法转换为的字符串Int
。考虑使用数字类型amount
推荐阅读
- python - 如何检查手动装饰功能?
- c# - 来自 Table_name 中 x 的 LINQ?
- formatting - xtext 格式化程序发生未知比较失败
- javascript - 在 post 请求中发送文件
- java - 将 Java Spring 代码从 AggregationOutput 更改为 DBCollection 聚合方法
- google-play-games - Google Play 游戏 - 是否可以限制免费用户每天的游戏次数?
- dart - 在 Flutter 中单击搜索框时如何防止出现浮动操作按钮 (FAB)?
- android - 具有相同行高的两个表视图(Android)
- python - 熊猫时间戳和创建新数据帧之间的区别
- reactjs - Storybook/react 以某种奇怪的方式加载组件(看起来像异步)