我正在寻找一种方法来获取数组中包含的类的值的总和。我的设置如下:
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/