如何在 Swift 中求二维数组中所有元素的总和?

Ahm*_*d F 3 arrays multidimensional-array swift

假设我有以下二维数组:

let my2dArray = [[01, 02, 03, 04],
                 [05, 06, 07, 08],
                 [09, 10, 11, 12],
                 [13, 14, 15, 16]]
Run Code Online (Sandbox Code Playgroud)

获得 中所有元素的总和的最简单方法是什么my2dArray

假设输出应该是:

01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 = 136

vac*_*ama 6

一种方法是使用joined()展平数组,然后reduce对其求和:

let my2dArray = [[01, 02, 03, 04],
                 [05, 06, 07, 08],
                 [09, 10, 11, 12],
                 [13, 14, 15, 16]]

let result = my2dArray.joined().reduce(0, +)

print(result) // 136
Run Code Online (Sandbox Code Playgroud)

请注意,它my2dArray.joined()不会创建另一个数组,而是创建一个FlattenBidirectionalCollection<Array<Array<Int>>>允许向前和向后顺序访问项目的数组,但它不会分配新的存储空间。Array(my2dArray.joined())如果您想查看数组格式的外观,您当然可以这样做。