ios - Using nested reduce in Swift -
i have array contains arrays of double, in screenshot:
my goal sum of multiplication of double elements of each array. means, want multiply elements of each array then, in case, have 3 values sum of them.
i want use reduce, flatmap ? or elegant solution.
what have tried ?
totalcombinations.reduce(0.0) { $0 + ($1[0]*$1[1]*$1[2]) } but work when know size of arrays contains doubles.
given these values
let lists: [[double]] = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]] let's take @ several possible approaches
solution #1
let sum = lists.reduce(0) { $0 + $1.reduce(1, combine: *) } solution #2
if define extension
extension sequencetype generator.element == double { var product : double { return reduce(1.0, combine: *) } } then can write
let sum = lists.reduce(0) { $0 + $1.product } solution #3
with extension defined above can write
let sum = lists.map { $0.product }.reduce(0, combine:+) solution #4
if define these 2 postfix operators
postfix operator +>{} postfix func +>(values:[double]) -> double { return values.reduce(0, combine: +) } postfix operator *>{} postfix func *>(values:[double]) -> double { return values.reduce(1, combine: *) } we can write
lists.map(*>)+> 
Comments
Post a Comment