2015-10-15 43 views
1

数组我有一个这样的元组限定的阵列:求和元组

var stringsWithLengthsArray:[(someString: String, someStringLength: Int)] = [] 

我已经附加了号码元组到该阵列。我想总结数组中每个元组的someStringLength元素,并认为最好的方法是使用stringsWithLengthsArray.reduce方法,但我无法弄清楚语法。总结someStringLength元素的最佳方法是什么?

回答

1

您可以使用地图上只得到someStringLength属性值和使用减少来总结所有的要素如下:

let stringsWithLengthsArray:[(someString: String, someStringLength: Int)] = [("strA",2),("strB",3)] 

let someStringLenghtTotal = stringsWithLengthsArray.map{$0.someStringLength}.reduce(0){$0+$1} 

someStringLenghtTotal // 5 
0

您可以使用.forEach并传递一个封闭添加您的整数数组英寸

var sum = 0 
stringArray.forEach{ sum += $0.someStringLength } 
1

这是另一种解决方案。使用reduce而不使用map并直接使用.0/.1访问器访问您的元组字段。

let total = stringsWithLengthsArray.reduce(0){$0 + $1.1} 
1

我喜欢这种方式最好:

let total = stringsWithLengthsArray.reduce(0){$0 + $1.someStringLength}