什么是最简单(最好)的方法来找到一个数组的整数和在swift? 我有一个数组叫multiples我想知道这些倍数的和。


当前回答

斯威夫特3、4、5

使用减少:

let totalamount = yourTransactionsModelArray.reduce(0) { $0 + $1.amount}

老式的理解方法:

for (var i = 0; i < n; i++) {
 sum = sum + Int(multiples[i])!
}

//where n =数组中元素的个数

其他回答

用于对象数组中元素的和

self.rankDataModelArray.flatMap{$0.count}.reduce(0, +)

Swift 4示例

class Employee {
    var salary: Int =  0
    init (_ salary: Int){
        self.salary = salary
    }
}

let employees = [Employee(100),Employee(300),Employee(600)]
var sumSalary = employees.reduce(0, {$0 + $1.salary}) //1000

Swift3已更改为:

let multiples = [...]
sum = multiples.reduce(0, +)

斯威夫特3、4、5

使用减少:

let totalamount = yourTransactionsModelArray.reduce(0) { $0 + $1.amount}

老式的理解方法:

for (var i = 0; i < n; i++) {
 sum = sum + Int(multiples[i])!
}

//where n =数组中元素的个数

斯威夫特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
}