arrays - 包含自定义类的数组总和(Swift)

标签 arrays swift sum reduce

我正在寻找一种方法来获取数组中包含的类的值的总和。我的设置如下:

class CustomClass {
    var value: Int?
    init(value: Int) {
       self.value = value
    }
}

let object1 = CustomClass(value: 2)
let object2 = CustomClass(value: 4)
let object3 = CustomClass(value: 8)

let array: [CustomClass] = [object1, object2, object3]

我目前的解决方案如下:

var sumArray = [Int]()
for object in array {
    sumArray.append(object.value!)
}
let sum = sumArray.reduce(0, +)

问题是它对于具有许多其他值的类变得非常复杂,有人知道更好的解决方案吗?

最佳答案

您可以将您的自定义类数组压缩映射到整数数组,然后将该数组缩减为其总和。喜欢,

let sum = array.lazy.compactMap { $0.value }
            .reduce(0, +)

关于arrays - 包含自定义类的数组总和(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713859/

相关文章:

swift - Watchkit:是否可以在 WKInterfaceLabel 后面添加图像?

swift - Date.addingTimeInterval(_ :) and Date. advanced(by :)?)有什么区别

php - 具有相同键的 2 个数组元素的总和

javascript - JavaScript array.forEach 是否按升序遍历元素

javascript - 遍历对象数组并通过 ID 引用返回总和

PHP 解析错误 : syntax error, 意外 '$y6956096d' (T_VARIABLE)

显示初始化错误的 Java-MP3 文件

ios - UIUserNotificationSettings 的问题

MYSQL INSERT IF SUM > CONSTANT

pandas - 有没有办法为 pandas 数据框中下面的行生成总和?