什么是最简单(最好)的方法来找到一个数组的整数和在swift? 我有一个数组叫multiples我想知道这些倍数的和。
当前回答
用于对象数组中元素的和
self.rankDataModelArray.flatMap{$0.count}.reduce(0, +)
其他回答
用于对象数组中元素的和
self.rankDataModelArray.flatMap{$0.count}.reduce(0, +)
斯威夫特3
如果你有一个通用对象的数组,你想对一些对象属性求和,那么:
class A: NSObject {
var value = 0
init(value: Int) {
self.value = value
}
}
let array = [A(value: 2), A(value: 4)]
let sum = array.reduce(0, { $0 + $1.value })
// ^ ^
// $0=result $1=next A object
print(sum) // 6
尽管for-cycle的形式较短,但很多时候你可能更喜欢经典的for-cycle:
let array = [A(value: 2), A(value: 4)]
var sum = 0
array.forEach({ sum += $0.value})
// or
for element in array {
sum += element.value
}
@IBOutlet var valueSource: [MultipleIntBoundSource]!
private var allFieldsCount: Int {
var sum = 0
valueSource.forEach { sum += $0.count }
return sum
}
用于嵌套参数
保持简单……
var array = [1, 2, 3, 4, 5, 6, 7, 9, 0]
var n = 0
for i in array {
n += i
}
print("My sum of elements is: \(n)")
输出:
元素的和是:37
斯威夫特3.0
我也有同样的问题,我在苹果的文档上找到了这个解决方案。
let numbers = [1, 2, 3, 4]
let addTwo: (Int, Int) -> Int = { x, y in x + y }
let numberSum = numbers.reduce(0, addTwo)
// 'numberSum' == 10
但是,在我的例子中,我有一个对象列表,然后我需要转换我的列表的值:
let numberSum = self.list.map({$0.number_here}).reduce(0, { x, y in x + y })
这对我很有用。